)]}'
{
  "log": [
    {
      "commit": "c8bce3d3bdedc7d187fa222a3b36d149bd940d0e",
      "tree": "47f335f6faaca36eed1dceb64dc0366ef68ec875",
      "parents": [
        "5f789cd8bae9b6315b7bf93e24ec1ac85f5a13b9",
        "98779be861a05c4cb75bed916df72ec0cba8b53d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 29 08:49:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 29 08:49:09 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux:\n  svcrdma: dma unmap the correct length for the RPCRDMA header page.\n  nfsd: Revert \"svcrpc: take advantage of tcp autotuning\"\n  nfsd: fix hung up of nfs client while sync write data to nfs server\n"
    },
    {
      "commit": "98779be861a05c4cb75bed916df72ec0cba8b53d",
      "tree": "6c7f51832c835cc3e98796fff83abc440edb3255",
      "parents": [
        "7f4218354fe312b327af06c3d8c95ed5f214c8ca"
      ],
      "author": {
        "name": "Steve Wise",
        "email": "swise@opengridcomputing.com",
        "time": "Thu May 14 16:34:28 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 18:57:24 2009 -0400"
      },
      "message": "svcrdma: dma unmap the correct length for the RPCRDMA header page.\n\nThe svcrdma module was incorrectly unmapping the RPCRDMA header page.\nOn IBM pserver systems this causes a resource leak that results in\nrunning out of bus address space (10 cthon iterations will reproduce it).\nThe code was mapping the full page but only unmapping the actual header\nlength.  The fix is to only map the header length.\n\nI also cleaned up the use of ib_dma_map_page() calls since the unmap\nlogic always uses ib_dma_unmap_single().  I made these symmetrical.\n\nSigned-off-by: Steve Wise \u003cswise@opengridcomputing.com\u003e\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7f4218354fe312b327af06c3d8c95ed5f214c8ca",
      "tree": "545cd2ae14e2e4329f2bf1b5248079197d0a914c",
      "parents": [
        "a0d24b295aed7a9daf4ca36bd4784e4d40f82303"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 18:51:06 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed May 27 18:51:06 2009 -0400"
      },
      "message": "nfsd: Revert \"svcrpc: take advantage of tcp autotuning\"\n\nThis reverts commit 47a14ef1af48c696b214ac168f056ddc79793d0e \"svcrpc:\ntake advantage of tcp autotuning\", which uncovered some further problems\nin the server rpc code, causing significant performance regressions in\ncommon cases.\n\nWe will likely reinstate this patch after releasing 2.6.30 and applying\nsome work on the underlying fixes to the problem (developed by Trond).\n\nReported-by: Jeff Moyer \u003cjmoyer@redhat.com\u003e\nCc: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nCc: Jim Rees \u003crees@umich.edu\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "68743082b560067e3e93eab8b2568f238e486865",
      "tree": "b907dd1a170e6be38e4ab5fb61733f642532bf9c",
      "parents": [
        "b18f1e21993f73f072b1e0859f942fb11afddcb1"
      ],
      "author": {
        "name": "Vu Pham",
        "email": "vu@mellanox.com",
        "time": "Tue May 26 14:51:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue May 26 14:51:00 2009 -0400"
      },
      "message": "XPRTRDMA: fix client rpcrdma FRMR registration on mlx4 devices\n\nmlx4/connectX FRMR requires local write enable together with remote\nrdma write enable. This fixes NFS/RDMA operation over the ConnectX\nInfiniband HCA in the default memreg mode.\n\nSigned-off-by: Vu Pham \u003cvu@mellanox.com\u003e\nSigned-off-by: Tom Talpey \u003ctmtalpey@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2ea3f868487dcee0bfd91055f1c42bb172efc507",
      "tree": "ab8386aba340269f36c402c59ca77234ac1db7a6",
      "parents": [
        "bfe3891a5f5d3b78146a45f40e435d14f5ae39dd",
        "8daed1e549b55827758b3af7b8132a73fc51526f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 12 17:11:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 12 17:11:56 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux:\n  nfsd: silence lockdep warning\n  lockd: fix list corruption on lockd restart\n  nfsd4: check for negative dentry before use in nfsv4 readdir\n  nfsd41: slots are freed with session\n  svcrdma: clean up error paths.\n  svcrdma: Fix dma map direction for rdma read targets\n"
    },
    {
      "commit": "21515e46bc6a6279dd13f6c01898ada9720100a3",
      "tree": "12acd677f3d1b7e615d3887a20f46bceb02438f9",
      "parents": [
        "d0687be7c7ae21461da4438d5fd059b48487bfe1"
      ],
      "author": {
        "name": "Steve Wise",
        "email": "swise@opengridcomputing.com",
        "time": "Wed Apr 29 14:14:00 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 03 14:19:10 2009 -0400"
      },
      "message": "svcrdma: clean up error paths.\n\nThese fixes resolved crashes due to resource leak BUG_ON checks. The\nresource leaks were detected by introducing asynchronous transport errors.\n\nSigned-off-by: Steve Wise \u003cswise@opengridcomputing.com\u003e\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f75e6745aa3084124ae1434fd7629853bdaf6798",
      "tree": "bfd605c079e8a1dd6ad008acc6031441c220c845",
      "parents": [
        "414772fa496273d1a93cefa6dab790f5fdf9de82"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 21 17:18:20 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat May 02 16:35:08 2009 -0700"
      },
      "message": "SUNRPC: Fix the problem of EADDRNOTAVAIL syslog floods on reconnect\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d13034\n\nIf the port gets into a TIME_WAIT state, then we cannot reconnect without\nbinding to a new port.\n\nTested-by: Petr Vandrovec \u003cpetr@vandrovec.name\u003e\nTested-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0687be7c7ae21461da4438d5fd059b48487bfe1",
      "tree": "06036d8b604f6470a52a121aecd41f6e4a4cec23",
      "parents": [
        "091069740304c979f957ceacec39c461d0192158"
      ],
      "author": {
        "name": "Steve Wise",
        "email": "swise@opengridcomputing.com",
        "time": "Fri Apr 03 15:18:24 2009 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Apr 25 18:11:14 2009 -0400"
      },
      "message": "svcrdma: Fix dma map direction for rdma read targets\n\nThe nfs server rdma transport was mapping rdma read target pages for\nTO_DEVICE instead of FROM_DEVICE.  This causes data corruption on non\ncache-coherent systems if frmrs are used.\n\nSigned-off-by: Steve Wise \u003cswise@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a63856252d2112e7c452696037a86ceb12f47f80",
      "tree": "b1ad03fe441349069f80e58de425b3f72af9e5b7",
      "parents": [
        "b24241a09208874d5d770bee30791daae41ad762",
        "04826f43d4f0a4d56423eb8abb9f2ec9987df5b5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:56 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:25:56 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.30\u0027 of git://linux-nfs.org/~bfields/linux: (81 commits)\n  nfsd41: define nfsd4_set_statp as noop for !CONFIG_NFSD_V4\n  nfsd41: define NFSD_DRC_SIZE_SHIFT in set_max_drc\n  nfsd41: Documentation/filesystems/nfs41-server.txt\n  nfsd41: CREATE_EXCLUSIVE4_1\n  nfsd41: SUPPATTR_EXCLCREAT attribute\n  nfsd41: support for 3-word long attribute bitmask\n  nfsd: dynamically skip encoded fattr bitmap in _nfsd4_verify\n  nfsd41: pass writable attrs mask to nfsd4_decode_fattr\n  nfsd41: provide support for minor version 1 at rpc level\n  nfsd41: control nfsv4.1 svc via /proc/fs/nfsd/versions\n  nfsd41: add OPEN4_SHARE_ACCESS_WANT nfs4_stateid bmap\n  nfsd41: access_valid\n  nfsd41: clientid handling\n  nfsd41: check encode size for sessions maxresponse cached\n  nfsd41: stateid handling\n  nfsd: pass nfsd4_compound_state* to nfs4_preprocess_{state,seq}id_op\n  nfsd41: destroy_session operation\n  nfsd41: non-page DRC for solo sequence responses\n  nfsd41: Add a create session replay cache\n  nfsd41: create_session operation\n  ...\n"
    },
    {
      "commit": "90975ef71246c5c688ead04e8ff6f36dc92d28b3",
      "tree": "eda44b2efe91509719b0e62219c2efec13a9e762",
      "parents": [
        "cab4e4c43f92582a2bfc026137b3d8a175bd0360",
        "558f6ab9106e6be701acb0257e7171df1bbccf04"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)\n  cpumask: remove cpumask allocation from idle_balance, fix\n  numa, cpumask: move numa_node_id default implementation to topology.h, fix\n  cpumask: remove cpumask allocation from idle_balance\n  x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus\n  x86: cpumask: update 32-bit APM not to mug current-\u003ecpus_allowed\n  x86: microcode: cleanup\n  x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c\n  cpumask: fix CONFIG_CPUMASK_OFFSTACK\u003dy cpu hotunplug crash\n  numa, cpumask: move numa_node_id default implementation to topology.h\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  cpumask: remove x86 cpumask_t uses.\n  cpumask: use cpumask_var_t in uv_flush_tlb_others.\n  cpumask: remove cpumask_t assignment from vector_allocation_domain()\n  cpumask: make Xen use the new operators.\n  cpumask: clean up summit\u0027s send_IPI functions\n  cpumask: use new cpumask functions throughout x86\n  x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask\n  cpumask: convert struct cpuinfo_x86\u0027s llc_shared_map to cpumask_var_t\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  x86: unify 32 and 64-bit node_to_cpumask_map\n  ...\n"
    },
    {
      "commit": "2f425878b6a71571341dcd3f9e9d1a6f6355da9c",
      "tree": "52735958c1614458bd6b459040f977dfc3c3e9a9",
      "parents": [
        "20766016329eb4985c2c8b2a1b2333e0f865fdf9"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Apr 03 08:27:32 2009 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 03 17:41:12 2009 -0700"
      },
      "message": "nfsd: don\u0027t use the deferral service, return NFS4ERR_DELAY\n\nOn an NFSv4.1 server cache miss that causes an upcall, NFS4ERR_DELAY will be\nreturned. It is up to the NFSv4.1 client to resend only the operations that\nhave not been processed.\n\nInitialize rq_usedeferral to 1 in svc_process(). It sill be turned off in\nnfsd4_proc_compound() only when NFSv4.1 Sessions are used.\n\nNote: this isn\u0027t an adequate solution on its own. It\u0027s acceptable as a way\nto get some minimal 4.1 up and working, but we\u0027re going to have to find a\nway to avoid returning DELAY in all common cases before 4.1 can really be\nconsidered ready.\n\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[nfsd41: reverse rq_nodeferral negative logic]\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[sunrpc: initialize rq_usedeferral]\nSigned-off-by: Andy Adamson \u003candros@netapp.com\u003e\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -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: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "cc85906110e26fe8537c3bdbc08a74ae8110030b",
      "tree": "891813098ede3dba4d5ff3b83b1f7b491367ad2f",
      "parents": [
        "c09bca786ff941ed17c5f381c4eca5b106808c51",
        "c69da774b28e01e062e0a3aba7509f2dcfd2a11a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:28:15 2009 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into for-linus\n"
    },
    {
      "commit": "c69da774b28e01e062e0a3aba7509f2dcfd2a11a",
      "tree": "e406bb8055548fcfcd3796881c263fe44dc69443",
      "parents": [
        "ad5b365c1266b0c9e8e254a3c1cc4ef66bf33cba"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 30 18:59:17 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 01 13:24:29 2009 -0400"
      },
      "message": "SUNRPC: Ensure IPV6_V6ONLY is set on the socket before binding to a port\n\nAlso ensure that we use the protocol family instead of the address\nfamily when calling sock_create_kern().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "558f6ab9106e6be701acb0257e7171df1bbccf04",
      "tree": "6e811633baeb676693c493f6c82bf785cab2771d",
      "parents": [
        "15f7176eb1cccec0a332541285ee752b935c1c85",
        "65fb0d23fcddd8697c871047b700c78817bdaa43"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:33:50 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Mar 31 13:33:50 2009 +1030"
      },
      "message": "Merge branch \u0027cpumask-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\nConflicts:\n\n\tarch/x86/include/asm/topology.h\n\tdrivers/oprofile/buffer_sync.c\n(Both cases: changed in Linus\u0027 tree, removed in Ingo\u0027s).\n"
    },
    {
      "commit": "d17abcd5417d84cfa8a225160481203a37dc81d4",
      "tree": "74ce2c425c5c6550acec90bc92c8a3f735f0d257",
      "parents": [
        "db6f204019380c788f1de06ee937bdbccd60e5c0",
        "bb75efddeaca89f8a67fd82cdcbaaf436cf17ca9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:\n  oprofile: Thou shalt not call __exit functions from __init functions\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic\n  cpumask: remove cpumask_t from core\n  cpumask: convert rcutorture.c\n  cpumask: use new cpumask_ functions in core code.\n  cpumask: remove references to struct irqaction\u0027s mask field.\n  cpumask: use mm_cpumask() wrapper: kernel/fork.c\n  cpumask: use set_cpu_active in init/main.c\n  cpumask: remove node_to_first_cpu\n  cpumask: fix seq_bitmap_*() functions.\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n"
    },
    {
      "commit": "65fb0d23fcddd8697c871047b700c78817bdaa43",
      "tree": "119e6e5f276622c4c862f6c9b6d795264ba1603a",
      "parents": [
        "8c083f081d0014057901c68a0a3e0f8ca7ac8d23",
        "dfbbe89e197a77f2c8046a51c74e33e35f878080"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:53:32 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 23:53:32 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into cpumask-for-linus\n\nConflicts:\n\tarch/x86/kernel/cpu/common.c\n"
    },
    {
      "commit": "99b76233803beab302123d243eea9e41149804f3",
      "tree": "398178210fe66845ccd6fa4258ba762a87e023ad",
      "parents": [
        "3dec7f59c370c7b58184d63293c3dc984d475840"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Mar 25 22:48:06 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 01:14:44 2009 +0400"
      },
      "message": "proc 2/2: remove struct proc_dir_entry::owner\n\nSetting -\u003eowner as done currently (pde-\u003eowner \u003d THIS_MODULE) is racy\nas correctly noted at bug #12454. Someone can lookup entry with NULL\n-\u003eowner, thus not pinning enything, and release it later resulting\nin module refcount underflow.\n\nWe can keep -\u003eowner and supply it at registration time like -\u003eproc_fops\nand -\u003edata.\n\nBut this leaves -\u003eowner as easy-manipulative field (just one C assignment)\nand somebody will forget to unpin previous/pin current module when\nswitching -\u003eowner. -\u003eproc_fops is declared as \"const\" which should give\nsome thoughts.\n\n-\u003eread_proc/-\u003ewrite_proc were just fixed to not require -\u003eowner for\nprotection.\n\nrmmod\u0027ed directories will be empty and return \".\" and \"..\" -- no harm.\nAnd directories with tricky enough readdir and lookup shouldn\u0027t be modular.\nWe definitely don\u0027t want such modular code.\n\nRemoving -\u003eowner will also make PDE smaller.\n\nSo, let\u0027s nuke it.\n\nKudos to Jeff Layton for reminding about this, let\u0027s say, oversight.\n\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d12454\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "692105b8ac5bcd75dc65f6a8f10bdbd0f0f34dcf",
      "tree": "e079cea0948d250e5411befe0c5cca7c97bcf860",
      "parents": [
        "877d03105d04b2c13e241130277fa69c8d2564f0"
      ],
      "author": {
        "name": "Matt LaPlante",
        "email": "kernel1@cyberdogtech.com",
        "time": "Mon Jan 26 11:12:25 2009 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Mar 30 15:22:01 2009 +0200"
      },
      "message": "trivial: fix typos/grammar errors in Kconfig texts\n\nSigned-off-by: Matt LaPlante \u003ckernel1@cyberdogtech.com\u003e\nAcked-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "aa85ea5b89c36c51200d795dd788139bd9b8cf50",
      "tree": "0b68a35b691417d927127376beb0541d96c9cc64",
      "parents": [
        "1a8a51004a18b627ea81444201f7867875212f46"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:15 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 +1030"
      },
      "message": "cpumask: use new cpumask_ functions in core code.\n\nImpact: cleanup\n\nTime to clean up remaining laggards using the old cpu_ functions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Trond.Myklebust@netapp.com\n"
    },
    {
      "commit": "9355982830ad67dca35e0f3d43319f3d438f82b4",
      "tree": "131730bb424b613c72880751a0f92ba168409410",
      "parents": [
        "363f724cdd3d2ae554e261be995abdeb15f7bdd9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:51 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 16:00:17 2009 -0400"
      },
      "message": "SUNRPC: Remove CONFIG_SUNRPC_REGISTER_V4\n\nWe just augmented the kernel\u0027s RPC service registration code so that\nit automatically adjusts to what is supported in user space.  Thus we\nno longer need the kernel configuration option to enable registering\nRPC services with v4 -- it\u0027s all done automatically.\n\nThis patch is part of a series that addresses\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d12256\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "363f724cdd3d2ae554e261be995abdeb15f7bdd9",
      "tree": "2a1e46fc7f6f78c008d71415c010f555a404922a",
      "parents": [
        "cadc0fa534e51e20fdffe1623913c163a18d71b1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:44 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:59:48 2009 -0400"
      },
      "message": "SUNRPC: rpcb_register() should handle errors silently\n\nMove error reporting for RPC registration to rpcb_register\u0027s caller.\n\nThis way the caller can choose to recover silently from certain\nerrors, but report errors it does not recognize.  Error reporting\nfor kernel RPC service registration is now handled in one place.\n\nThis patch is part of a series that addresses\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d12256\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cadc0fa534e51e20fdffe1623913c163a18d71b1",
      "tree": "51d41748b7c98eab0749d033b174b0584e25088a",
      "parents": [
        "d5a8620f7c8a5bcade730e2fa1224191f289fb00"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:36 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:58:37 2009 -0400"
      },
      "message": "SUNRPC: Simplify kernel RPC service registration\n\nThe kernel registers RPC services with the local portmapper with an\nrpcbind SET upcall to the local portmapper.  Traditionally, this used\nrpcbind v2 (PMAP), but registering RPC services that support IPv6\nrequires rpcbind v3 or v4.\n\nSince we now want separate PF_INET and PF_INET6 listeners for each\nkernel RPC service, svc_register() will do only one of those\nregistrations at a time.\n\nFor PF_INET, it tries an rpcb v4 SET upcall first; if that fails, it\ndoes a legacy portmap SET.  This makes it entirely backwards\ncompatible with legacy user space, but allows a proper v4 SET to be\nused if rpcbind is available.\n\nFor PF_INET6, it does an rpcb v4 SET upcall.  If that fails, it fails\nthe registration, and thus the transport creation.  This let\u0027s the\nkernel detect if user space is able to support IPv6 RPC services, and\nthus whether it should maintain a PF_INET6 listener for each service\nat all.\n\nThis provides complete backwards compatibilty with legacy user space\nthat only supports rpcbind v2.  The only down-side is that registering\na new kernel RPC service may take an extra exchange with the local\nportmapper on legacy systems, but this is an infrequent operation and\nis done over UDP (no lingering sockets in TIMEWAIT), so it shouldn\u0027t\nbe consequential.\n\nThis patch is part of a series that addresses\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d12256\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5a8620f7c8a5bcade730e2fa1224191f289fb00",
      "tree": "40fc44449ff6553af283df00f804bc7d4ce356af",
      "parents": [
        "1673d0de40ab46cac3b456ad50e1c8d6a31bfd66"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:29 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:58:07 2009 -0400"
      },
      "message": "SUNRPC: Simplify svc_unregister()\n\nOur initial implementation of svc_unregister() assumed that PMAP_UNSET\ncleared all rpcbind registrations for a [program, version] tuple.\nHowever, we now have evidence that PMAP_UNSET clears only \"inet\"\nentries, and not \"inet6\" entries, in the rpcbind database.\n\nFor backwards compatibility with the legacy portmapper, the\nsvc_unregister() function also must work if user space doesn\u0027t support\nrpcbind version 4 at all.\n\nThus we\u0027ll send an rpcbind v4 UNSET, and if that fails, we\u0027ll send a\nPMAP_UNSET.\n\nThis simplifies the code in svc_unregister() and provides better\nbackwards compatibility with legacy user space that does not support\nrpcbind version 4.  We can get rid of the conditional compilation in\nhere as well.\n\nThis patch is part of a series that addresses\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d12256\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1673d0de40ab46cac3b456ad50e1c8d6a31bfd66",
      "tree": "0d643ac1b4ad99d6d1bdee3cadfe9d6cf07810b1",
      "parents": [
        "126e4bc3b3b446482696377f67a634c76eaf2e9c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:57:00 2009 -0400"
      },
      "message": "SUNRPC: Allow callers to pass rpcb_v4_register a NULL address\n\nThe user space TI-RPC library uses an empty string for the universal\naddress when unregistering all target addresses for [program, version].\nThe kernel\u0027s rpcb client should behave the same way.\n\nHere, we are switching between several registration methods based on\nthe protocol family of the incoming address.  Rename the other rpcbind\nv4 registration functions to make it clear that they, as well, are\nswitched on protocol family.  In /etc/netconfig, this is either \"inet\"\nor \"inet6\".\n\nNB: The loopback protocol families are not supported in the kernel.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "126e4bc3b3b446482696377f67a634c76eaf2e9c",
      "tree": "baa96bad06505f212e59b7e1fa557658412979c8",
      "parents": [
        "3aba45536fe8f92aa07bcdfd2fb1cf17eec7d786"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:14 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:56:04 2009 -0400"
      },
      "message": "SUNRPC: rpcbind actually interprets r_owner string\n\nRFC 1833 has little to say about the contents of r_owner; it only\nspecifies that it is a string, and states that it is used to control\nwho can UNSET an entry.\n\nOur port of rpcbind (from Sun) assumes this string contains a numeric\nUID value, not alphabetical or symbolic characters, but checks this\nvalue only for AF_LOCAL RPCB_SET or RPCB_UNSET requests.  In all other\ncases, rpcbind ignores the contents of the r_owner string.\n\nThe reference user space implementation of rpcb_set(3) uses a numeric\nUID for all SET/UNSET requests (even via the network) and an empty\nstring for all other requests.  We emulate that behavior here to\nmaintain bug-for-bug compatibility.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3aba45536fe8f92aa07bcdfd2fb1cf17eec7d786",
      "tree": "256848234e49c3e1f8758afeb1e85ad2b005db10",
      "parents": [
        "ba5c35e0c7e30b095636cd58b0854fdbd3c32947"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:47:06 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:55:52 2009 -0400"
      },
      "message": "SUNRPC: Clean up address type casts in rpcb_v4_register()\n\nClean up: Simplify rpcb_v4_register() and its helpers by moving the\ndetails of sockaddr type casting to rpcb_v4_register()\u0027s helper\nfunctions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ba5c35e0c7e30b095636cd58b0854fdbd3c32947",
      "tree": "43f59f4c98576811e66567e06470f0d840db18ab",
      "parents": [
        "fc28decdc93633a65d54e42498e9e819d466329c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:59 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:55:40 2009 -0400"
      },
      "message": "SUNRPC: Don\u0027t return EPROTONOSUPPORT in svc_register()\u0027s helpers\n\nThe RPC client returns -EPROTONOSUPPORT if there is a protocol version\nmismatch (ie the remote RPC server doesn\u0027t support the RPC protocol\nversion sent by the client).\n\nHelpers for the svc_register() function return -EPROTONOSUPPORT if they\ndon\u0027t recognize the passed-in IPPROTO_ value.\n\nThese are two entirely different failure modes.\n\nHave the helpers return -ENOPROTOOPT instead of -EPROTONOSUPPORT.  This\nwill allow callers to determine more precisely what the underlying\nproblem is, and decide to report or recover appropriately.\n\nThis patch is part of a series that addresses\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d12256\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc28decdc93633a65d54e42498e9e819d466329c",
      "tree": "19361a89093649d16c48e421ac2dfadc63c97fc6",
      "parents": [
        "7d21c0f9845f0ce4e81baac3519fbb2c6c2cc908"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:51 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:55:28 2009 -0400"
      },
      "message": "SUNRPC: Use IPv4 loopback for registering AF_INET6 kernel RPC services\n\nThe kernel uses an IPv6 loopback address when registering its AF_INET6\nRPC services so that it can tell whether the local portmapper is\nactually IPv6-enabled.\n\nSince the legacy portmapper doesn\u0027t listen on IPv6, however, this\ncauses a long timeout on older systems if the kernel happens to try\ncreating and registering an AF_INET6 RPC service.  Originally I wanted\nto use a connected transport (either TCP or connected UDP) so that the\nupcall would fail immediately if the portmapper wasn\u0027t listening on\nIPv6, but we never agreed on what transport to use.\n\nIn the end, it\u0027s of little consequence to the kernel whether the local\nportmapper is listening on IPv6.  It\u0027s only important whether the\nportmapper supports rpcbind v4.  And the kernel can\u0027t tell that at all\nif it is sending requests via IPv6 -- the portmapper will just ignore\nthem.\n\nSo, send both rpcbind v2 and v4 SET/UNSET requests via IPv4 loopback\nto maintain better backwards compatibility between new kernels and\nlegacy user space, and prevent multi-second hangs in some cases when\nthe kernel attempts to register RPC services.\n\nThis patch is part of a series that addresses\n\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d12256\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d21c0f9845f0ce4e81baac3519fbb2c6c2cc908",
      "tree": "8e4eefa86dfc05bfc0f36452863f55c570c82456",
      "parents": [
        "26298caacac3e4754194b13aef377706d5de6cf6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:44 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:55:18 2009 -0400"
      },
      "message": "SUNRPC: Set IPV6ONLY flag on PF_INET6 RPC listener sockets\n\nWe are about to convert to using separate RPC listener sockets for\nPF_INET and PF_INET6.  This echoes the way IPv6 is handled in user\nspace by TI-RPC, and eliminates the need for ULPs to worry about\nmapped IPv4 AF_INET6 addresses when doing address comparisons.\n\nStart by setting the IPV6ONLY flag on PF_INET6 RPC listener sockets.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "49a9072f29a1039f142ec98b44a72d7173651c02",
      "tree": "d2a87541cb699fb6b1fbdef492f3dc6c305aa541",
      "parents": [
        "9652ada3fb5914a67d8422114e8a76388330fa79"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:29 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:54:48 2009 -0400"
      },
      "message": "SUNRPC: Remove @family argument from svc_create() and svc_create_pooled()\n\nSince an RPC service listener\u0027s protocol family is specified now via\nsvc_create_xprt(), it no longer needs to be passed to svc_create() or\nsvc_create_pooled().  Remove that argument from the synopsis of those\nfunctions, and remove the sv_family field from the svc_serv struct.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9652ada3fb5914a67d8422114e8a76388330fa79",
      "tree": "b37d77bf972dda04b46794c4e50ec6f6d044dc79",
      "parents": [
        "baf01caf09e87579c2d157e5ee29975db8551522"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:54:36 2009 -0400"
      },
      "message": "SUNRPC: Change svc_create_xprt() to take a @family argument\n\nThe sv_family field is going away.  Pass a protocol family argument to\nsvc_create_xprt() instead of extracting the family from the passed-in\nsvc_serv struct.\n\nAgain, as this is a listener socket and not an address, we make this\nnew argument an \"int\" protocol family, instead of an \"sa_family_t.\"\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "baf01caf09e87579c2d157e5ee29975db8551522",
      "tree": "e7ab4f9eb5b8c2d158a2a330e935cfd8be9e356a",
      "parents": [
        "4b62e58cccff9c5e7ffc7023f7ec24c75fbd549b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:13 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:54:23 2009 -0400"
      },
      "message": "SUNRPC: svc_setup_socket() gets protocol family from socket\n\nSince the sv_family field is going away, modify svc_setup_socket() to\nextract the protocol family from the passed-in socket instead of from\nthe passed-in svc_serv struct.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b62e58cccff9c5e7ffc7023f7ec24c75fbd549b",
      "tree": "34965810fe2a9aff001dd193a3cb925c2c3e1abd",
      "parents": [
        "156e62094a74cf43f02f56ef96b6cda567501357"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:46:06 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:54:12 2009 -0400"
      },
      "message": "SUNRPC: Pass a family argument to svc_register()\n\nThe sv_family field is going away.  Instead of using sv_family, have\nthe svc_register() function take a protocol family argument.\n\nSince this argument represents a protocol family, and not an address\nfamily, this argument takes an int, as this is what is passed to\nsock_create_kern().  Also make sure svc_register\u0027s helpers are\nchecking for PF_FOO instead of AF_FOO.  The value of [AP]F_FOO are\nequivalent; this is simply a symbolic change to reflect the semantics\nof the value stored in that variable.\n\nsock_create_kern() should return EPFNOSUPPORT if the passed-in\nprotocol family isn\u0027t supported, but it uses EAFNOSUPPORT for this\ncase.  We will stick with that tradition here, as svc_register()\nis called by the RPC server in the same path as sock_create_kern().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "156e62094a74cf43f02f56ef96b6cda567501357",
      "tree": "100fdf25a7f13f8c2ebebd241d02a9ed46e89292",
      "parents": [
        "adbbe929569e6eec8ff9feca23f1f2b40b42853d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:45:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:53:57 2009 -0400"
      },
      "message": "SUNRPC: Clean up svc_find_xprt() calling sequence\n\nClean up: add documentating comment and use appropriate data types for\nsvc_find_xprt()\u0027s arguments.\n\nThis also eliminates a mixed sign comparison: @port was an int, while\nthe return value of svc_xprt_local_port() is an unsigned short.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "776bd5c7a207de546918f805090bfc823d2660c8",
      "tree": "bf99838d1e073b8caee80bd79027d69892585d5c",
      "parents": [
        "7fe5c398fc2186ed586db11106a6692d871d0d58"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 18 20:45:28 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Mar 28 15:52:08 2009 -0400"
      },
      "message": "SUNRPC: Don\u0027t flag empty RPCB_GETADDR reply as bogus\n\nIn 2007, commit e65fe3976f594603ed7b1b4a99d3e9b867f573ea added\nadditional sanity checking to rpcb_decode_getaddr() to make sure we\nwere getting a reply that was long enough to be an actual universal\naddress.  If the uaddr string isn\u0027t long enough, the XDR decoder\nreturns EIO.\n\nHowever, an empty string is a valid RPCB_GETADDR response if the\nrequested service isn\u0027t registered.  Moreover, \"::.n.m\" is also a\nvalid RPCB_GETADDR response for IPv6 addresses that is shorter\nthan rpcb_decode_getaddr()\u0027s lower limit of 11.  So this sanity\ncheck introduced a regression for rpcbind requests against IPv6\nremotes.\n\nSo revert the lower bound check added by commit\ne65fe3976f594603ed7b1b4a99d3e9b867f573ea, and add an explicit check\nfor an empty uaddr string, similar to libtirpc\u0027s rpcb_getaddr(3).\n\nPointed-out-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3ae5080f4c2e293229508dabe7c8a90af4e4c460",
      "tree": "9cb11f26905a82b7fac9d3b8f9d61d58bc5c94b0",
      "parents": [
        "2c9e15a011c55ff96b2b8d2b126d1b9a96abba20",
        "aabb8fdb41128705fd1627f56fdd571e45fdbcdb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 27 16:23:12 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (37 commits)\n  fs: avoid I_NEW inodes\n  Merge code for single and multiple-instance mounts\n  Remove get_init_pts_sb()\n  Move common mknod_ptmx() calls into caller\n  Parse mount options just once and copy them to super block\n  Unroll essentials of do_remount_sb() into devpts\n  vfs: simple_set_mnt() should return void\n  fs: move bdev code out of buffer.c\n  constify dentry_operations: rest\n  constify dentry_operations: configfs\n  constify dentry_operations: sysfs\n  constify dentry_operations: JFS\n  constify dentry_operations: OCFS2\n  constify dentry_operations: GFS2\n  constify dentry_operations: FAT\n  constify dentry_operations: FUSE\n  constify dentry_operations: procfs\n  constify dentry_operations: ecryptfs\n  constify dentry_operations: CIFS\n  constify dentry_operations: AFS\n  ...\n"
    },
    {
      "commit": "abd91ee979f785b7377216532620d98ab4e3e5af",
      "tree": "8e230a9966c6b792ee95a190a30572c543e96909",
      "parents": [
        "2795e53b4ed5d1f49d2283f416c922f55ec7d461"
      ],
      "author": {
        "name": "ideawu",
        "email": "ideawu@163.com",
        "time": "Thu Mar 26 12:55:29 2009 +0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Mar 27 19:15:21 2009 -0400"
      },
      "message": "sunrpc/svc.c: Remove unused line \u0027rqstp-\u003erq_server \u003d serv;\u0027 in svc_process\n\nThere is no need to set rqstp-\u003erq_server to serv, while serv is initialized as rqstp-\u003erq_server at previous line. And between these two lines, there is no change to rqstp-\u003erq_server.\n\nSigned-off-by: ideawu \u003cideawu@163.com\u003e\nReviewed-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3ba13d179e8c24c68eac32b93593a6b10fcd1572",
      "tree": "732162ba9ddfe66c8e892a25765cb30f0807cf31",
      "parents": [
        "296c2d86635bd6ecd8f282dfff18bb68fb4fc512"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Feb 20 06:02:22 2009 +0000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Mar 27 14:44:03 2009 -0400"
      },
      "message": "constify dentry_operations: rest\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "08abe18af1f78ee80c3c3a5ac47c3e0ae0beadf6",
      "tree": "2be39bf8942edca1bcec735145e144a682ca9cd3",
      "parents": [
        "f0de70f8bb56952f6e016a65a8a8d006918f5bf6",
        "0384e2959127a56d0640505d004d8dd92f9c29f5"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Thu Mar 26 15:23:24 2009 -0700"
      },
      "message": "Merge branch \u0027master\u0027 of /home/davem/src/GIT/linux-2.6/\n\nConflicts:\n\tdrivers/net/wimax/i2400m/usb-notif.c\n"
    },
    {
      "commit": "2e3c230bc7149a6af65d26a0c312e230e0c33cc3",
      "tree": "11375e4bcc5ce17265ef41d210d21a3ac8860a2e",
      "parents": [
        "55420c24a0d4d1fce70ca713f84aa00b6b74a70e"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "tmtalpey@gmail.com",
        "time": "Thu Mar 12 22:21:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:37 2009 -0400"
      },
      "message": "SVCRDMA: fix recent printk format warnings.\n\nprintk formats in prior commit were reversed/incorrect.\nCompiled without warning on x86 and x86_64, but detected on ppc.\n\nSigned-off-by: Tom Talpey \u003ctmtalpey@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55420c24a0d4d1fce70ca713f84aa00b6b74a70e",
      "tree": "9e7e931122cb77e7ae1249b6dde81d83f60a894d",
      "parents": [
        "b61d59fffd3e5b6037c92b4c840605831de8a251"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 15:29:24 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:36 2009 -0400"
      },
      "message": "SUNRPC: Ensure we close the socket on EPIPE errors too...\n\nAs long as one task is holding the socket lock, then calls to\nxprt_force_disconnect(xprt) will not succeed in shutting down the socket.\nIn particular, this would mean that a server initiated shutdown will not\nsucceed until the lock is relinquished.\nIn order to avoid the deadlock, we should ensure that xs_tcp_send_request()\ncloses the socket on EPIPE errors too.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b61d59fffd3e5b6037c92b4c840605831de8a251",
      "tree": "329bfecb1c8c66364e7b2797c51eab779ee2540d",
      "parents": [
        "25fe6142a57c720452c5e9ddbc1f32309c1e5c19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:04 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:35 2009 -0400"
      },
      "message": "SUNRPC: xs_tcp_connect_worker{4,6}: merge common code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "25fe6142a57c720452c5e9ddbc1f32309c1e5c19",
      "tree": "54ace9992e13ff9d3644bbb98ec8b74baf22b241",
      "parents": [
        "7d1e8255cf959fba7ee2317550dfde39f0b936ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:34 2009 -0400"
      },
      "message": "SUNRPC: Add a sysctl to control the duration of the socket linger timeout\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d1e8255cf959fba7ee2317550dfde39f0b936ae",
      "tree": "0a046b83e5ac29501849c34408059480d4c210be",
      "parents": [
        "5e3771ce2d6a69e10fcc870cdf226d121d868491"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Mar 19 15:17:34 2009 -0400"
      },
      "message": "SUNRPC: Add the equivalent of the linger and linger2 timeouts to RPC sockets\n\nThis fixes a regression against FreeBSD servers as reported by Tomas\nKasparek. Apparently when using RPC over a TCP socket, the FreeBSD servers\ndon\u0027t ever react to the client closing the socket, and so commit\ne06799f958bf7f9f8fae15f0c6f519953fb0257c (SUNRPC: Use shutdown() instead of\nclose() when disconnecting a TCP socket) causes the setup to hang forever\nwhenever the client attempts to close and then reconnect.\n\nWe break the deadlock by adding a \u0027linger2\u0027 style timeout to the socket,\nafter which, the client will abort the connection using a TCP \u0027RST\u0027.\n\nThe default timeout is set to 15 seconds. A subsequent patch will put it\nunder user control by means of a systctl.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "47a14ef1af48c696b214ac168f056ddc79793d0e",
      "tree": "f2f8fc4ae9b8cc142e3d4c7b1978d3128cce8bdd",
      "parents": [
        "026722c25e6eb018eab8b9a3c198c258f5b7a2e7"
      ],
      "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@citi.umich.edu",
        "time": "Wed Mar 18 17:46:59 2009 -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": "03cf6c9f49a8fea953d38648d016e3f46e814991",
      "tree": "c7e639bd9fb775af1919d2442d0bf2306dfbfca7",
      "parents": [
        "59a252ff8c0f2fa32c896f69d56ae33e641ce7ad"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Tue Jan 13 21:26:36 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:42 2009 -0400"
      },
      "message": "knfsd: add file to export stats about nfsd pools\n\nAdd /proc/fs/nfsd/pool_stats to export to userspace various\nstatistics about the operation of rpc server thread pools.\n\nThis patch is based on a forward-ported version of\nknfsd-add-pool-thread-stats which has been shipping in the SGI\n\"Enhanced NFS\" product since 2006 and which was previously\nposted:\n\nhttp://article.gmane.org/gmane.linux.nfs/10375\n\nIt has also been updated thus:\n\n * moved EXPORT_SYMBOL() to near the function it exports\n * made the new struct struct seq_operations const\n * used SEQ_START_TOKEN instead of ((void *)1)\n * merged fix from SGI PV 990526 \"sunrpc: use dprintk instead of\n   printk in svc_pool_stats_*()\" by Harshula Jayasuriya.\n * merged fix from SGI PV 964001 \"Crash reading pool_stats before\n   nfsds are started\".\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: Harshula Jayasuriya \u003charshula@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "59a252ff8c0f2fa32c896f69d56ae33e641ce7ad",
      "tree": "f79089d44737e5f050cc4869b42829650096747f",
      "parents": [
        "8bbfa9f3889b643fc7de82c0c761ef17097f8faf"
      ],
      "author": {
        "name": "Greg Banks",
        "email": "gnb@sgi.com",
        "time": "Tue Jan 13 21:26:35 2009 +1100"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:38:41 2009 -0400"
      },
      "message": "knfsd: avoid overloading the CPU scheduler with enormous load averages\n\nAvoid overloading the CPU scheduler with enormous load averages\nwhen handling high call-rate NFS loads.  When the knfsd bottom half\nis made aware of an incoming call by the socket layer, it tries to\nchoose an nfsd thread and wake it up.  As long as there are idle\nthreads, one will be woken up.\n\nIf there are lot of nfsd threads (a sensible configuration when\nthe server is disk-bound or is running an HSM), there will be many\nmore nfsd threads than CPUs to run them.  Under a high call-rate\nlow service-time workload, the result is that almost every nfsd is\nrunnable, but only a handful are actually able to run.  This situation\ncauses two significant problems:\n\n1. The CPU scheduler takes over 10% of each CPU, which is robbing\n   the nfsd threads of valuable CPU time.\n\n2. At a high enough load, the nfsd threads starve userspace threads\n   of CPU time, to the point where daemons like portmap and rpc.mountd\n   do not schedule for tens of seconds at a time.  Clients attempting\n   to mount an NFS filesystem timeout at the very first step (opening\n   a TCP connection to portmap) because portmap cannot wake up from\n   select() and call accept() in time.\n\nDisclaimer: these effects were observed on a SLES9 kernel, modern\nkernels\u0027 schedulers may behave more gracefully.\n\nThe solution is simple: keep in each svc_pool a counter of the number\nof threads which have been woken but have not yet run, and do not wake\nany more if that count reaches an arbitrary small threshold.\n\nTesting was on a 4 CPU 4 NIC Altix using 4 IRIX clients, each with 16\nsynthetic client threads simulating an rsync (i.e. recursive directory\nlisting) workload reading from an i386 RH9 install image (161480\nregular files in 10841 directories) on the server.  That tree is small\nenough to fill in the server\u0027s RAM so no disk traffic was involved.\nThis setup gives a sustained call rate in excess of 60000 calls/sec\nbefore being CPU-bound on the server.  The server was running 128 nfsds.\n\nProfiling showed schedule() taking 6.7% of every CPU, and __wake_up()\ntaking 5.2%.  This patch drops those contributions to 3.0% and 2.2%.\nLoad average was over 120 before the patch, and 20.9 after.\n\nThis patch is a forward-ported version of knfsd-avoid-nfsd-overload\nwhich has been shipping in the SGI \"Enhanced NFS\" product since 2006.\nIt has been posted before:\n\nhttp://article.gmane.org/gmane.linux.nfs/10374\n\nSigned-off-by: Greg Banks \u003cgnb@sgi.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a70f730282019f487aa33a84e5ac9a5e89c5abd0",
      "tree": "e6891ec5db5383c6f39617d0cc9671e1a0d1a988",
      "parents": [
        "c69fc56de1df5769f2ec69c915c7ad5afe63804c"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 13 14:49:46 2009 +1030"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Fri Mar 13 14:49:46 2009 +1030"
      },
      "message": "cpumask: replace node_to_cpumask with cpumask_of_node.\n\nImpact: cleanup\n\nnode_to_cpumask (and the blecherous node_to_cpumask_ptr which\ncontained a declaration) are replaced now everyone implements\ncpumask_of_node.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "5e3771ce2d6a69e10fcc870cdf226d121d868491",
      "tree": "3c20ee45ae8b87621ae95cedb6b385bf0e6d7a2f",
      "parents": [
        "8a2cec295f4499cc9d4452e9b02d4ed071bb42d3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "message": "SUNRPC: Ensure that xs_nospace return values are propagated\n\nIf xs_nospace() finds that the socket has disconnected, it attempts to\nreturn ENOTCONN, however that value is then squashed by the callers.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a2cec295f4499cc9d4452e9b02d4ed071bb42d3",
      "tree": "148f1658cb923a2faafdb1e993dd63832c860eb1",
      "parents": [
        "2a4919919a97911b0aa4b9f5ac1eab90ba87652b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:01 2009 -0400"
      },
      "message": "SUNRPC: Delay, then retry on connection errors.\n\nEnforce the comment in xs_tcp_connect_worker4/xs_tcp_connect_worker6 that\nwe should delay, then retry on certain connection errors.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2a4919919a97911b0aa4b9f5ac1eab90ba87652b",
      "tree": "c12eb42c34f0d0b79130ae93ebd56159e8366ee8",
      "parents": [
        "482f32e65d31cbf88d08306fa5d397cc945c3c26"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "message": "SUNRPC: Return EAGAIN instead of ENOTCONN when waking up xprt-\u003epending\n\nWhile we should definitely return socket errors to the task that is\ncurrently trying to send data, there is no need to propagate the same error\nto all the other tasks on xprt-\u003epending. Doing so actually slows down\nrecovery, since it causes more than one tasks to attempt socket recovery.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "482f32e65d31cbf88d08306fa5d397cc945c3c26",
      "tree": "e0a8adf7925ecfce413506b68d67a94f6c1b1131",
      "parents": [
        "c8485e4d634f6df155040293928707f127f0d06d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:38:00 2009 -0400"
      },
      "message": "SUNRPC: Handle socket errors correctly\n\nEnsure that we pick up and handle socket errors as they occur.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c8485e4d634f6df155040293928707f127f0d06d",
      "tree": "72ec8a7ea829e4f7df4648e646353c55a037e50e",
      "parents": [
        "40d2549db5f515e415894def98b49db7d4c56714"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:59 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:59 2009 -0400"
      },
      "message": "SUNRPC: Handle ECONNREFUSED correctly in xprt_transmit()\n\nIf we get an ECONNREFUSED error, we currently go to sleep on the\n\u0027xprt-\u003esending\u0027 wait queue. The problem is that no timeout is set there,\nand there is nothing else that will wake the task up later.\n\nWe should deal with ECONNREFUSED in call_status, given that is where we\nalso deal with -EHOSTDOWN, and friends.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40d2549db5f515e415894def98b49db7d4c56714",
      "tree": "6c301c61cd3a9215bf39deee53623e1fd97a895f",
      "parents": [
        "670f94573104b4a25525d3fcdcd6496c678df172"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "message": "SUNRPC: Don\u0027t disconnect if a connection is still in progress.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "670f94573104b4a25525d3fcdcd6496c678df172",
      "tree": "3beaadb8ee2841972c0e719c67c64e1cc27bb7ea",
      "parents": [
        "15f081ca8ddfe150fb639c591b18944a539da0fc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:58 2009 -0400"
      },
      "message": "SUNRPC: Ensure we set XPRT_CLOSING only after we\u0027ve sent a tcp FIN...\n\n...so that we can distinguish between when we need to shutdown and when we\ndon\u0027t. Also remove the call to xs_tcp_shutdown() from xs_tcp_connect(),\nsince xprt_connect() makes the same test.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15f081ca8ddfe150fb639c591b18944a539da0fc",
      "tree": "24261e97034770ab827d153cc541222e04701ac3",
      "parents": [
        "a67d18f89f5782806135aad4ee012ff78d45aae7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:57 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:57 2009 -0400"
      },
      "message": "SUNRPC: Avoid an unnecessary task reschedule on ENOTCONN\n\nIf the socket is unconnected, and xprt_transmit() returns ENOTCONN, we\ncurrently give up the lock on the transport channel. Doing so means that\nthe lock automatically gets assigned to the next task in the xprt-\u003esending\nqueue, and so that task needs to be woken up to do the actual connect.\n\nThe following patch aims to avoid that unnecessary task switch.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "441e3e242903f9b190d5764bed73edb58f977413",
      "tree": "3898c80feadee3cdeb3c99cb7d62861127f1b4ef",
      "parents": [
        "b38ab40ad58c1fc43ea590d6342f6a6763ac8fb6"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "tmtalpey@gmail.com",
        "time": "Wed Mar 11 14:37:56 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:56 2009 -0400"
      },
      "message": "SUNRPC: dynamically load RPC transport modules on-demand\n\nProvide an api to attempt to load any necessary kernel RPC\nclient transport module automatically. By convention, the\ndesired module name is \"xprt\"+\"transport name\". For example,\nwhen NFS mounting with \"-o proto\u003drdma\", attempt to load the\n\"xprtrdma\" module.\n\nSigned-off-by: Tom Talpey \u003ctmtalpey@gmail.com\u003e\nCc: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b38ab40ad58c1fc43ea590d6342f6a6763ac8fb6",
      "tree": "f2e701eff6bed88f1085a95a9a240db105776831",
      "parents": [
        "b1e1e158779f1d99c2cc18e466f6bf9099fc0853"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "tmtalpey@gmail.com",
        "time": "Wed Mar 11 14:37:55 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:55 2009 -0400"
      },
      "message": "XPRTRDMA: correct an rpc/rdma inline send marshaling error\n\nCertain client rpc\u0027s which contain both lengthy page-contained\nmetadata and a non-empty xdr_tail buffer require careful handling\nto avoid overlapped memory copying. Rearranging of existing rpcrdma\nmarshaling code avoids it; this fixes an NFSv4 symlink creation error\ndetected with connectathon basic/test8 to multiple servers.\n\nSigned-off-by: Tom Talpey \u003ctmtalpey@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b1e1e158779f1d99c2cc18e466f6bf9099fc0853",
      "tree": "6f73394f824f6234e8da245f4633ed8323293919",
      "parents": [
        "e1ebfd33be068ec933f8954060a499bd22ad6f69"
      ],
      "author": {
        "name": "Tom Talpey",
        "email": "tmtalpey@gmail.com",
        "time": "Wed Mar 11 14:37:55 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:37:55 2009 -0400"
      },
      "message": "SVCRDMA: remove faulty assertions in rpc/rdma chunk validation.\n\nCertain client-provided RPCRDMA chunk alignments result in an\nadditional scatter/gather entry, which triggered nfs/rdma server\nassertions incorrectly. OpenSolaris nfs/rdma client connectathon\ntesting was blocked by these in the special/locking section.\n\nSigned-off-by: Tom Talpey \u003ctmtalpey@gmail.com\u003e\nCc: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe315e76fc3a3f9f7e1581dc22fec7e7719f0896",
      "tree": "15ba17ab92691d55f3e3168df8fef2fb366339c0",
      "parents": [
        "01d37c428ae080563c0a3bb8bdfa88c65a6891d3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Mar 11 14:10:21 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:10:21 2009 -0400"
      },
      "message": "SUNRPC: Avoid spurious wake-up during UDP connect processing\n\nTo clear out old state, the UDP connect workers unconditionally invoke\nxs_close() before proceeding with a new connect.  Nowadays this causes\na spurious wake-up of the task waiting for the connect to complete.\n\nThis is a little racey, but usually harmless.  The waiting task\nimmediately retries the connect via a call_bind/call_connect sequence,\nwhich usually finds the transport already in the connected state\nbecause the connect worker has finished in the background.\n\nTo avoid a spurious wake-up, factor the xs_close() logic that resets\nthe underlying socket into a helper, and have the UDP connect workers\ncall that helper instead of xs_close().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01d37c428ae080563c0a3bb8bdfa88c65a6891d3",
      "tree": "bfc1c9a6336d4b7058c742d4a3178f8f588f5b66",
      "parents": [
        "fba91afbec2c004e2c8733ae9e0ca6998e962c64"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:09:39 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:09:39 2009 -0400"
      },
      "message": "SUNRPC: xprt_connect() don\u0027t abort the task if the transport isn\u0027t bound\n\nIf the transport isn\u0027t bound, then we should just return ENOTCONN, letting\ncall_connect_status() and/or call_status() deal with retrying. Currently,\nwe appear to abort all pending tasks with an EIO error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fba91afbec2c004e2c8733ae9e0ca6998e962c64",
      "tree": "025d7c07b8d41d4e5752fb9da7396a0b596856da",
      "parents": [
        "d7371c41b0cda782256b1df759df4e8d4724584c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:06:41 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 11 14:06:41 2009 -0400"
      },
      "message": "SUNRPC: Fix an Oops due to socket not set up yet...\n\nWe can Oops in both xs_udp_send_request() and xs_tcp_send_request() if the\ncall to xs_sendpages() returns an error due to the socket not yet being\nset up.\nDeal with that situation by returning a new error: ENOTSOCK, so that we\nknow to avoid dereferencing transport-\u003esock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb9b55ab4d73280597fd183b367d50452f4d7846",
      "tree": "80e0c4e5315ea5fd18bb5ba9d37ec5f77170631a",
      "parents": [
        "16b71fdf97599f1b1b7f38418ee9922d9f117396"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:16 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:16 2009 -0400"
      },
      "message": "SUNRPC: Tighten up the task locking rules in __rpc_execute()\n\nWe should probably not be testing any flags after we\u0027ve cleared the\nRPC_TASK_RUNNING flag, since rpc_make_runnable() is then free to assign the\nrpc_task to another workqueue, which may then destroy it.\n\nWe can fix any races with rpc_make_runnable() by ensuring that we only\nclear the RPC_TASK_RUNNING flag while holding the rpc_wait_queue-\u003elock that\nthe task is supposed to be sleeping on (and then checking whether or not\nthe task really is sleeping).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f0fa15432e49547c3fa915644c7e0c0975809e7",
      "tree": "45939f63baea1e1aafeaa3872c99e82252313791",
      "parents": [
        "b5f348e5a41b39543c1c5efd661d7fd296dd5281"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Fri Feb 06 23:48:33 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Fri Feb 06 23:48:33 2009 -0800"
      },
      "message": "net/sunrpc/xprtsock.c: some common code found\n\n$ diff-funcs xs_udp_write_space net/sunrpc/xprtsock.c\nnet/sunrpc/xprtsock.c xs_tcp_write_space\n --- net/sunrpc/xprtsock.c:xs_udp_write_space()\n +++ net/sunrpc/xprtsock.c:xs_tcp_write_space()\n@@ -1,4 +1,4 @@\n- * xs_udp_write_space - callback invoked when socket buffer space\n+ * xs_tcp_write_space - callback invoked when socket buffer space\n  *                             becomes available\n  * @sk: socket whose state has changed\n  *\n@@ -7,12 +7,12 @@\n  * progress, otherwise we\u0027ll waste resources thrashing kernel_sendmsg\n  * with a bunch of small requests.\n  */\n-static void xs_udp_write_space(struct sock *sk)\n+static void xs_tcp_write_space(struct sock *sk)\n {\n \tread_lock(\u0026sk-\u003esk_callback_lock);\n\n-\t/* from net/core/sock.c:sock_def_write_space */\n-\tif (sock_writeable(sk)) {\n+\t/* from net/core/stream.c:sk_stream_write_space */\n+\tif (sk_stream_wspace(sk) \u003e\u003d sk_stream_min_wspace(sk)) {\n \t\tstruct socket *sock;\n \t\tstruct rpc_xprt *xprt;\n\n\n$ codiff net/sunrpc/xprtsock.o net/sunrpc/xprtsock.o.new\nnet/sunrpc/xprtsock.c:\n  xs_tcp_write_space | -163\n  xs_udp_write_space | -163\n 2 functions changed, 326 bytes removed\n\nnet/sunrpc/xprtsock.c:\n  xs_write_space | +179\n 1 function changed, 179 bytes added\n\nnet/sunrpc/xprtsock.o.new:\n 3 functions changed, 179 bytes added, 326 bytes removed, diff: -147\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "55128bc23e9ab44e97f81f6cd349035230ee59a6",
      "tree": "8d13ef32b0c6c3031d62aa7596bc729c7ee5cb9a",
      "parents": [
        "4d7155b932b8129c72e2f2714890e20b2a05e0b7"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Tue Feb 03 15:20:13 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Feb 03 15:20:13 2009 -0800"
      },
      "message": "sunrpc: fix rdma dependencies\n\nFix sunrpc/rdma build dependencies.\nSurvives 12 build combinations of INET, IPV6, SUNRPC,\nINFINIBAND, and INFINIBAND_ADDR_TRANS.\n\nERROR: \"rdma_destroy_id\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_connect\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_destroy_qp\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_create_id\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_create_qp\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_resolve_route\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_disconnect\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_resolve_addr\" [net/sunrpc/xprtrdma/xprtrdma.ko] undefined!\nERROR: \"rdma_accept\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\nERROR: \"rdma_destroy_id\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\nERROR: \"rdma_listen\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\nERROR: \"rdma_create_id\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\nERROR: \"rdma_create_qp\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\nERROR: \"rdma_bind_addr\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\nERROR: \"rdma_disconnect\" [net/sunrpc/xprtrdma/svcrdma.ko] undefined!\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ce0cf6622c9a6f18c2723ea4bef7616799a1ca39",
      "tree": "fb1829524d385bb0840d282fa31d4aa20b421cb2",
      "parents": [
        "096abd77038a2ff74efd194d074eadcde80fb97d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun Nov 02 16:18:08 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pig.fieldses.org",
        "time": "Tue Jan 27 17:26:58 2009 -0500"
      },
      "message": "nfs: note that CONFIG_SUNRPC_XPRT_RDMA turns on server side support too\n\nWe forgot to update this when adding server-side support.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9098c24f35f7da6c89a83420acf21e3d7b35151d",
      "tree": "4c7a0de57b102e2ac3841774f5990962f0a5721a",
      "parents": [
        "e2b329e2002685c1b0fa3c06caadc0936b7f507f"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 11:11:56 2009 +0300"
      },
      "committer": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Jan 22 13:16:00 2009 +0300"
      },
      "message": "fs/Kconfig: move sunrpc out\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\n"
    },
    {
      "commit": "24c3767e41a6a59d32bb45abe899eb194e6bf1b8",
      "tree": "bf44f3f90e51b8cbbae89e9740cce9d56e8eb515",
      "parents": [
        "22945e4a1c7454c97f5d8aee1ef526c83fef3223"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:30:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:18:42 2009 -0500"
      },
      "message": "SUNRPC: The sunrpc server code should not be used by out-of-tree modules\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "22945e4a1c7454c97f5d8aee1ef526c83fef3223",
      "tree": "f082143420da55b97c98a1534336b0cf03412e0b",
      "parents": [
        "9a8d248e2d2e9c880ac4561f27fea5dc200655bd"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Jan 05 15:21:19 2009 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 17:08:46 2009 -0500"
      },
      "message": "svc: Clean up deferred requests on transport destruction\n\nA race between svc_revisit and svc_delete_xprt can result in\ndeferred requests holding references on a transport that can never be\nrecovered because dead transports are not enqueued for subsequent\nprocessing.\n\nCheck for XPT_DEAD in revisit to clean up completing deferrals on a dead\ntransport and sweep a transport\u0027s deferred queue to do the same for queued\nbut unprocessed deferrals.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2779e3ae39645515cb6c1126634f47c28c9e7190",
      "tree": "e7904837510ba41552a11ebd21caaaf336281462",
      "parents": [
        "f05ef8db1abe68e3f6fc272efee51bc54ce528c5"
      ],
      "author": {
        "name": "Tom Tucker",
        "email": "tom@opengridcomputing.com",
        "time": "Mon Jan 05 11:12:52 2009 -0600"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 15:40:45 2009 -0500"
      },
      "message": "svc: Move kfree of deferral record to common code\n\nThe rqstp structure has a pointer to a svc_deferred_req record\nthat is allocated when requests are deferred. This record is common\nto all transports and can be freed in common code.\n\nMove the kfree of the rq_deferred to the common svc_xprt_release\nfunction.\n\nThis also fixes a memory leak in the RDMA transport which does not\nkfree the dr structure in it\u0027s version of the xpo_release_rqst callback.\n\nSigned-off-by: Tom Tucker \u003ctom@opengridcomputing.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "69b6ba3712b796a66595cfaf0a5ab4dfe1cf964a",
      "tree": "e75274a8f4b12e086bf3481b98f97a6b5abda00f",
      "parents": [
        "262a09823bb07c6aafb6c1d312cde613d0b90c85"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:30:11 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:57 2009 -0500"
      },
      "message": "SUNRPC: Ensure the server closes sockets in a timely fashion\n\nWe want to ensure that connected sockets close down the connection when we\nset XPT_CLOSE, so that we don\u0027t keep it hanging while cleaning up all the\nstuff that is keeping a reference to the socket.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c9233eb7b0b11ef176d4bf68da2ce85464b6ec39",
      "tree": "22f9f999e0d48a5f3aae6b32f9ff702eb4db05cc",
      "parents": [
        "548eaca46b3cf4419b6c2be839a106d8641ffb70"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Oct 20 11:51:57 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:47 2009 -0500"
      },
      "message": "sunrpc: add sv_maxconn field to svc_serv (try #3)\n\nsvc_check_conn_limits() attempts to prevent denial of service attacks\nby having the service close old connections once it reaches a\nthreshold. This threshold is based on the number of threads in the\nservice:\n\n\t(serv-\u003esv_nrthreads + 3) * 20\n\nOnce we reach this, we drop the oldest connections and a printk pops\nto warn the admin that they should increase the number of threads.\n\nIncreasing the number of threads isn\u0027t an option however for services\nlike lockd. We don\u0027t want to eliminate this check entirely for such\nservices but we need some way to increase this limit.\n\nThis patch adds a sv_maxconn field to the svc_serv struct. When it\u0027s\nset to 0, we use the current method to calculate the max number of\nconnections. RPC services can then set this on an as-needed basis.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "56ff5efad96182f4d3cb3dc6b07396762c658f16",
      "tree": "cb91f93aa2324573527165d56d230b606a3111ed",
      "parents": [
        "acfa4380efe77e290d3a96b11cd4c9f24f4fbb18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 09:34:39 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Jan 05 11:54:28 2009 -0500"
      },
      "message": "zero i_uid/i_gid on inode allocation\n\n... and don\u0027t bother in callers.  Don\u0027t bother with zeroing i_blocks,\nwhile we are at it - it\u0027s already been zeroed.\n\ni_mode is not worth the effort; it has no common default value.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "08cc36cbd1ee7d86422713bb21551eed1326b894",
      "tree": "52cc683387f903b34a7f6f798dcdbae385b58db8",
      "parents": [
        "3c92ec8ae91ecf59d88c798301833d7cf83f2179",
        "46f72f57d279688c4524df78edb5738db730eeef"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 30 16:51:43 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 30 16:51:43 2008 -0500"
      },
      "message": "Merge branch \u0027devel\u0027 into next\n"
    },
    {
      "commit": "0191b625ca5a46206d2fb862bb08f36f2fcb3b31",
      "tree": "454d1842b1833d976da62abcbd5c47521ebe9bd7",
      "parents": [
        "54a696bd07c14d3b1192d03ce7269bc59b45209a",
        "eb56092fc168bf5af199d47af50c0d84a96db898"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:49:40 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:49:40 2008 -0800"
      },
      "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: (1429 commits)\n  net: Allow dependancies of FDDI \u0026 Tokenring to be modular.\n  igb: Fix build warning when DCA is disabled.\n  net: Fix warning fallout from recent NAPI interface changes.\n  gro: Fix potential use after free\n  sfc: If AN is enabled, always read speed/duplex from the AN advertising bits\n  sfc: When disabling the NIC, close the device rather than unregistering it\n  sfc: SFT9001: Add cable diagnostics\n  sfc: Add support for multiple PHY self-tests\n  sfc: Merge top-level functions for self-tests\n  sfc: Clean up PHY mode management in loopback self-test\n  sfc: Fix unreliable link detection in some loopback modes\n  sfc: Generate unique names for per-NIC workqueues\n  802.3ad: use standard ethhdr instead of ad_header\n  802.3ad: generalize out mac address initializer\n  802.3ad: initialize ports LACPDU from const initializer\n  802.3ad: remove typedef around ad_system\n  802.3ad: turn ports is_individual into a bool\n  802.3ad: turn ports is_enabled into a bool\n  802.3ad: make ntt bool\n  ixgbe: Fix set_ringparam in ixgbe to use the same memory pools.\n  ...\n\nFixed trivial IPv4/6 address printing conflicts in fs/cifs/connect.c due\nto the conversion to %pI (in this networking merge) and the addition of\ndoing IPv6 addresses (from the earlier merge of CIFS).\n"
    },
    {
      "commit": "2efef7080f471d312a9c4feb3dc5ee038039c7ed",
      "tree": "cad946aa12f1780818d396c732d17ad9db642607",
      "parents": [
        "8b1c7bf5b624c9bc91b41ae577b9fc5c21641705"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:19:56 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:19:56 2008 -0500"
      },
      "message": "rpc: add service field to new upcall\n\nThis patch extends the new upcall with a \"service\" field that currently\ncan have 2 values: \"*\" or \"nfs\". These values specify matching rules for\nprincipals in the keytab file. The \"*\" means that gssd is allowed to use\n\"root\", \"nfs\", or \"host\" keytab entries while the other option requires\n\"nfs\".\n\nRestricting gssd to use the \"nfs\" principal is needed for when the\nserver performs a callback to the client.  The server in this case has\nto authenticate itself as an \"nfs\" principal.\n\nWe also need \"service\" field to distiguish between two client-side cases\nboth currently using a uid of 0: the case of regular file access by the\nroot user, and the case of state-management calls (such as setclientid)\nwhich should use a keytab for authentication.  (And the upcall should\nfail if an appropriate principal can\u0027t be found.)\n\nSigned-off: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b1c7bf5b624c9bc91b41ae577b9fc5c21641705",
      "tree": "30189b6146999ba27581a84dfefa9a4ab0e09d69",
      "parents": [
        "61054b14d545e257b9415d5ca0cd5f43762b4d0c"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:19:26 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:19:26 2008 -0500"
      },
      "message": "rpc: add target field to new upcall\n\nThis patch extends the new upcall by adding a \"target\" field\ncommunicating who we want to authenticate to (equivalently, the service\nprincipal that we want to acquire a ticket for).\n\nSigned-off: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "61054b14d545e257b9415d5ca0cd5f43762b4d0c",
      "tree": "7f648cf35a3b79aa1555f21050f11d415b93f381",
      "parents": [
        "945b34a7725a5f0741de7775132aafc58bfecfbb"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:19:00 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:19:00 2008 -0500"
      },
      "message": "nfsd: support callbacks with gss flavors\n\nThis patch adds server-side support for callbacks other than AUTH_SYS.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "945b34a7725a5f0741de7775132aafc58bfecfbb",
      "tree": "89f209caa8ee7154fe80de1bd02dd81eaadd3bd6",
      "parents": [
        "608207e8884e083ad8b8d33eda868da70f0d63e8"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:18:34 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:18:34 2008 -0500"
      },
      "message": "rpc: allow gss callbacks to client\n\nThis patch adds client-side support to allow for callbacks other than\nAUTH_SYS.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "608207e8884e083ad8b8d33eda868da70f0d63e8",
      "tree": "86073f5f2e4a550bb1efe395954abe3fa91a555e",
      "parents": [
        "68e76ad0baf8f5d5060377c2423ee6eed5c63057"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:17:40 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:17:40 2008 -0500"
      },
      "message": "rpc: pass target name down to rpc level on callbacks\n\nThe rpc client needs to know the principal that the setclientid was done\nas, so it can tell gssd who to authenticate to.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "68e76ad0baf8f5d5060377c2423ee6eed5c63057",
      "tree": "baab3e30cc3b50bc49a553ee884885189ce85a8e",
      "parents": [
        "34769fc488b463cb753fc632f8f5ba56c918b7cb"
      ],
      "author": {
        "name": "Olga Kornievskaia",
        "email": "aglo@citi.umich.edu",
        "time": "Tue Dec 23 16:17:15 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:17:15 2008 -0500"
      },
      "message": "nfsd: pass client principal name in rsc downcall\n\nTwo principals are involved in krb5 authentication: the target, who we\nauthenticate *to* (normally the name of the server, like\nnfs/server.citi.umich.edu@CITI.UMICH.EDU), and the source, we we\nauthenticate *as* (normally a user, like bfields@UMICH.EDU)\n\nIn the case of NFSv4 callbacks, the target of the callback should be the\nsource of the client\u0027s setclientid call, and the source should be the\nnfs server\u0027s own principal.\n\nTherefore we allow svcgssd to pass down the name of the principal that\njust authenticated, so that on setclientid we can store that principal\nname with the new client, to be used later on callbacks.\n\nSigned-off-by: Olga Kornievskaia \u003caglo@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34769fc488b463cb753fc632f8f5ba56c918b7cb",
      "tree": "870cf1ac132567ad5683cf9882ab0810fb5acc2a",
      "parents": [
        "5b7ddd4a7b19f913901140ef7807dbf5e2b301cd"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:16:37 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:16:37 2008 -0500"
      },
      "message": "rpc: implement new upcall\n\nImplement the new upcall.  We decide which version of the upcall gssd\nwill use (new or old), by creating both pipes (the new one named \"gssd\",\nthe old one named after the mechanism (e.g., \"krb5\")), and then waiting\nto see which version gssd actually opens.\n\nWe don\u0027t permit pipes of the two different types to be opened at once.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5b7ddd4a7b19f913901140ef7807dbf5e2b301cd",
      "tree": "24ecff49a5dfeadb66a5805cc84abd580f52e994",
      "parents": [
        "79a3f20b641f9f93787ada49d1d7cfa98ee5a11e"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:15:44 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:15:44 2008 -0500"
      },
      "message": "rpc: store pointer to pipe inode in gss upcall message\n\nKeep a pointer to the inode that the message is queued on in the struct\ngss_upcall_msg.  This will be convenient, especially after we have a\nchoice of two pipes that an upcall could be queued on.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "79a3f20b641f9f93787ada49d1d7cfa98ee5a11e",
      "tree": "2f7d9f49b18388eb61400e383a9c5c4b070f1915",
      "parents": [
        "cf81939d6fcdf381fcb069d780c29eceb516bccd"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:10:52 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:10:52 2008 -0500"
      },
      "message": "rpc: use count of pipe openers to wait for first open\n\nIntroduce a global variable pipe_version which will eventually be used\nto keep track of which version of the upcall gssd is using.\n\nFor now, though, it only keeps track of whether any pipe is open or not;\nit is negative if not, zero if one is opened.  We use this to wait for\nthe first gssd to open a pipe.\n\n(Minor digression: note this waits only for the very first open of any\npipe, not for the first open of a pipe for a given auth; thus we still\nneed the RPC_PIPE_WAIT_FOR_OPEN behavior to wait for gssd to open new\npipes that pop up on subsequent mounts.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf81939d6fcdf381fcb069d780c29eceb516bccd",
      "tree": "1f55847a9c540d0f5ab7f42c1bd84fdb7d0cb38a",
      "parents": [
        "e712804ae4bd858bd89272aa3fc1a577294c0940"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:10:19 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:10:19 2008 -0500"
      },
      "message": "rpc: track number of users of the gss upcall pipe\n\nKeep a count of the number of pipes open plus the number of messages on\na pipe.  This count isn\u0027t used yet.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e712804ae4bd858bd89272aa3fc1a577294c0940",
      "tree": "67ac6fc6d7e01b43e648c38fdbc46d4d875452ca",
      "parents": [
        "c381060869317b3c84430d4f54965d409cbfe65f"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:09:47 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:09:47 2008 -0500"
      },
      "message": "rpc: call release_pipe only on last close\n\nI can\u0027t see any reason we need to call this until either the kernel or\nthe last gssd closes the pipe.\n\nAlso, this allows to guarantee that open_pipe and release_pipe are\ncalled strictly in pairs; open_pipe on gssd\u0027s first open, release_pipe\non gssd\u0027s last close (or on the close of the kernel side of the pipe, if\nthat comes first).\n\nThat will make it very easy for the gss code to keep track of which\npipes gssd is using.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c381060869317b3c84430d4f54965d409cbfe65f",
      "tree": "eca752e4fe61fd6e497fede253f83a01a36a365a",
      "parents": [
        "db75b3d6b5b0dad29860370618ea94d2726641b4"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:08:32 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:08:32 2008 -0500"
      },
      "message": "rpc: add an rpc_pipe_open method\n\nWe want to transition to a new gssd upcall which is text-based and more\neasily extensible.\n\nTo simplify upgrades, as well as testing and debugging, it will help if\nwe can upgrade gssd (to a version which understands the new upcall)\nwithout having to choose at boot (or module-load) time whether we want\nthe new or the old upcall.\n\nWe will do this by providing two different pipes: one named, as\ncurrently, after the mechanism (normally \"krb5\"), and supporting the\nold upcall.  One named \"gssd\" and supporting the new upcall version.\n\nWe allow gssd to indicate which version it supports by its choice of\nwhich pipe to open.\n\nAs we have no interest in supporting *simultaneous* use of both\nversions, we\u0027ll forbid opening both pipes at the same time.\n\nSo, add a new pipe_open callback to the rpc_pipefs api, which the gss\ncode can use to track which pipes have been open, and to refuse opens of\nincompatible pipes.\n\nWe only need this to be called on the first open of a given pipe.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "db75b3d6b5b0dad29860370618ea94d2726641b4",
      "tree": "e20ac4190fe09d27f7a48e7f3f46cce6f2dbd5b1",
      "parents": [
        "b03568c32226163cb3588ea8993adb268ed497a5"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:07:13 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:07:13 2008 -0500"
      },
      "message": "rpc: minor gss_alloc_msg cleanup\n\nI want to add a little more code here, so it\u0027ll be convenient to have\nthis flatter.\n\nAlso, I\u0027ll want to add another error condition, so it\u0027ll be more\nconvenient to return -ENOMEM than NULL in the error case.  The only\ncaller is already converting NULL to -ENOMEM anyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b03568c32226163cb3588ea8993adb268ed497a5",
      "tree": "5e14a3d1b370e87ac90a0a16234202a3f51eb4c6",
      "parents": [
        "99db35636842ede13bf3b6bf1a8d8f4f1c4c93bf"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:06:55 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:06:55 2008 -0500"
      },
      "message": "rpc: factor out warning code from gss_pipe_destroy_msg\n\nWe\u0027ll want to call this from elsewhere soon.  And this is a bit nicer\nanyway.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99db35636842ede13bf3b6bf1a8d8f4f1c4c93bf",
      "tree": "2a9bb57a57e8f3fb5e1a8ff9d4235c55f3c9b7ca",
      "parents": [
        "cf8cdbe5bd662eeaece96b017a4d6676ae416537"
      ],
      "author": {
        "name": "\\\"J. Bruce Fields\\",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Dec 23 16:06:33 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 16:06:33 2008 -0500"
      },
      "message": "rpc: remove unnecessary assignment\n\nWe\u0027re just about to kfree() gss_auth, so there\u0027s no point to setting any\nof its fields.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6dcd3926b214a1fb081df18305921dedae269977",
      "tree": "00847727ce5a34b2b12fa4251c604b0c6a9e1fcd",
      "parents": [
        "64672d55d93c26fb4035fd1a84a803cbc09cb058"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 23 15:21:57 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:57 2008 -0500"
      },
      "message": "sunrpc: fix code that makes auth_gss send destroy_cred message (try #2)\n\nThere\u0027s a bit of a chicken and egg problem when it comes to destroying\nauth_gss credentials. When we destroy the last instance of a GSSAPI RPC\ncredential, we should send a NULL RPC call with a GSS procedure of\nRPCSEC_GSS_DESTROY to hint to the server that it can destroy those\ncreds.\n\nThis isn\u0027t happening because we\u0027re setting clearing the uptodate bit on\nthe credentials and then setting the operations to the gss_nullops. When\nwe go to do the RPC call, we try to refresh the creds. That fails with\n-EACCES and the call fails.\n\nFix this by not clearing the UPTODATE bit for the credentials and adding\na new crdestroy op for gss_nullops that just tears down the cred without\ntrying to destroy the context.\n\nThe only difference between this patch and the first one is the removal\nof some minor formatting deltas.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "64672d55d93c26fb4035fd1a84a803cbc09cb058",
      "tree": "6873f9335b925e4c6a5336544a6f6fc1d789604f",
      "parents": [
        "dc0b027dfadfcb8a5504f7d8052754bf8d501ab9"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Tue Dec 23 15:21:56 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:56 2008 -0500"
      },
      "message": "optimize attribute timeouts for \"noac\" and \"actimeo\u003d0\"\n\nHi.\n\nI\u0027ve been looking at a bugzilla which describes a problem where\na customer was advised to use either the \"noac\" or \"actimeo\u003d0\"\nmount options to solve a consistency problem that they were\nseeing in the file attributes.  It turned out that this solution\ndid not work reliably for them because sometimes, the local\nattribute cache was believed to be valid and not timed out.\n(With an attribute cache timeout of 0, the cache should always\nappear to be timed out.)\n\nIn looking at this situation, it appears to me that the problem\nis that the attribute cache timeout code has an off-by-one\nerror in it.  It is assuming that the cache is valid in the\nregion, [read_cache_jiffies, read_cache_jiffies + attrtimeo].  The\ncache should be considered valid only in the region,\n[read_cache_jiffies, read_cache_jiffies + attrtimeo).  With this\nchange, the options, \"noac\" and \"actimeo\u003d0\", work as originally\nexpected.\n\nThis problem was previously addressed by special casing the\nattrtimeo \u003d\u003d 0 case.  However, since the problem is only an off-\nby-one error, the cleaner solution is address the off-by-one\nerror and thus, not require the special case.\n\n    Thanx...\n\n        ps\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7bd8826915989f1bd6917c11b0a4151b129e68cb",
      "tree": "49aabaf0cefd07c91ab622358550acab8545cfb4",
      "parents": [
        "468039ee469c5772d3e39f736923c5e0c31017e2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:32 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:32 2008 -0500"
      },
      "message": "SUNRPC: rpcsec_gss modules should not be used by out-of-tree code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "468039ee469c5772d3e39f736923c5e0c31017e2",
      "tree": "1e8d193748b509597979340d04092837abd13214",
      "parents": [
        "88a9fe8cae3bb52e82489447f45e8d7ba1409ca8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:31 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:31 2008 -0500"
      },
      "message": "SUNRPC: Convert the xdr helpers and rpc_pipefs to EXPORT_SYMBOL_GPL\n\nWe\u0027ve never considered the sunrpc code as part of any ABI to be used by\nout-of-tree modules.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88a9fe8cae3bb52e82489447f45e8d7ba1409ca8",
      "tree": "acef9d0b7d4c8c2e98faf852ab8bc0173842fbe5",
      "parents": [
        "136221fc3219b3805c48db5da065e8e3467175d4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:31 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:31 2008 -0500"
      },
      "message": "SUNRPC: Remove the last remnant of the BKL...\n\nSomehow, this escaped the previous purge. There should be no need to keep\nany extra locks in the XDR callbacks.\n\nThe NFS client XDR code only writes into private objects, whereas all reads\nof shared objects are confined to fields that do not change, such as\nfilehandles...\n\nDitto for lockd, the NFSv2/v3 client mount code, and rpcbind.\n\nThe nfsd XDR code may require the BKL, but since it does a synchronous RPC\ncall from a thread that already holds the lock, that issue is moot.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb14f019597cd86c21a6c601d7e900f40030c2e7",
      "tree": "36fb2f36a1747f98988f87215db1eef3a71d45eb",
      "parents": [
        "9a4a84294b0d60b8c287131478f743ba2bc68949",
        "a3dd15444baa9c7522c8457ab564c41219dfb44c"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 20:03:50 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Dec 15 20:03:50 2008 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6\n\nConflicts:\n\n\tdrivers/net/e1000e/ich8lan.c\n"
    },
    {
      "commit": "b1721d2bb9d015d7e49079414671569a2fc0ac9b",
      "tree": "f8c1cc3d7d3072c5f1d1cf78e430dddca18f1450",
      "parents": [
        "79f55f11a090d9f369448dcb58242c7924873920"
      ],
      "author": {
        "name": "Ilpo Järvinen",
        "email": "ilpo.jarvinen@helsinki.fi",
        "time": "Sun Dec 14 23:19:48 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Dec 14 23:19:48 2008 -0800"
      },
      "message": "rpc/rdma: goto instead of copypaste\n\nSigned-off-by: Ilpo Järvinen \u003cilpo.jarvinen@helsinki.fi\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "5eaa65b240c5eb7bf2235eb9dd177c83e6e3832c",
      "tree": "1a6b217cfc5b241b298a8765f68fcb5f711f9bc3",
      "parents": [
        "2107fb8b5bf018be691afdd4c6ffaecf0c3307be"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Wed Dec 10 15:18:31 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 10 15:18:31 2008 -0800"
      },
      "message": "net: Make static\n\nSparse asked whether these could be static.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ec98ce480ada787f2cfbd696980ff3564415505b",
      "tree": "1a4d644b38f9f1e4b4e086fde0b195df4a92cf84",
      "parents": [
        "3496f92beb9aa99ef21fccc154a36c7698e9c538",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Dec 04 17:16:36 2008 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n\nConflicts:\n\tfs/nfsd/nfs4recover.c\n\nManually fixed above to use new creds API functions, e.g.\nnfs4_save_creds().\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    }
  ],
  "next": "2433c41789d6aa6797ca747707b7764e88e4fb6d"
}
