)]}'
{
  "log": [
    {
      "commit": "55ef1274dddd4de387c54d110e354ffbb6cdc706",
      "tree": "27d67f6c6929a55239a18d532850807aeaf1b6c4",
      "parents": [
        "69b6ba3712b796a66595cfaf0a5ab4dfe1cf964a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Dec 20 11:58:38 2008 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jan 07 15:40:27 2009 -0500"
      },
      "message": "nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT\n\nSince nfsv4 allows LOCKT without an open, but the -\u003elock() method is a\nfile method, we fake up a struct file in the nfsv4 code with just the\nfields we need initialized.  But we forgot to initialize the file\noperations, with the result that LOCKT never results in a call to the\nfilesystem\u0027s -\u003elock() method (if it exists).\n\nWe could just add that one more initialization.  But this hack of faking\nup a struct file with only some fields initialized seems the kind of\nthing that might cause more problems in the future.  We should either do\nan open and get a real struct file, or make lock-testing an inode (not a\nfile) method.\n\nThis patch does the former.\n\nReported-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nTested-by: Marc Eshel \u003ceshel@almaden.ibm.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": "262a09823bb07c6aafb6c1d312cde613d0b90c85",
      "tree": "dbf609d729e18f1c98eff1fb8c91c9c95a6fbb3d",
      "parents": [
        "9e074856caf13ba83363f73759f5e395f74ccf41"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 12 16:57:35 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:57 2009 -0500"
      },
      "message": "NFSD: Add documenting comments for nfsctl interface\n\nDocument the NFSD sysctl interface laid out in fs/nfsd/nfsctl.c.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9e074856caf13ba83363f73759f5e395f74ccf41",
      "tree": "8ab1362829f406276ebbdbe5b4cfe831f1b97a1b",
      "parents": [
        "54224f04ae95d86b27c0673cd773ebb120d86876"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 12 16:57:27 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:57 2009 -0500"
      },
      "message": "NFSD: Replace open-coded integer with macro\n\nClean up: Instead of open-coding 2049, use the NFS_PORT macro.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "54224f04ae95d86b27c0673cd773ebb120d86876",
      "tree": "8f91b5388edbe6dd695ef224c95092a3bb11a856",
      "parents": [
        "b046ccdc1f8171f6d0129dcc2a28d49187b4bf69"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 12 16:57:20 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:56 2009 -0500"
      },
      "message": "NFSD: Fix a handful of coding style issues in write_filehandle()\n\nClean up: follow kernel coding style.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b046ccdc1f8171f6d0129dcc2a28d49187b4bf69",
      "tree": "f8f75d62a5a17b41ea3659ed0a2b94537d9974d5",
      "parents": [
        "b064ec038a6180b13e5f89b6a30b42cb5ce8febc"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 12 16:57:13 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:56 2009 -0500"
      },
      "message": "NFSD: clean up failover sysctl function naming\n\nClean up: Rename recently-added failover functions to match the naming\nconvention in fs/nfsd/nfsctl.c.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b064ec038a6180b13e5f89b6a30b42cb5ce8febc",
      "tree": "942e1e6ff64868a4cd72df5d2bb8724963cc2de3",
      "parents": [
        "57ef692588bc225853ca3267ca5b7cea2b07e058"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:59 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:56 2009 -0500"
      },
      "message": "lockd: Enable NLM use of AF_INET6\n\nIf the kernel is configured to support IPv6 and the RPC server can register\nservices via rpcbindv4, we are all set to enable IPv6 support for lockd.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aime Le Rouzic \u003caime.le-rouzic@bull.net\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "57ef692588bc225853ca3267ca5b7cea2b07e058",
      "tree": "d643d6d9d503288078b989aa37abc89cf1d78a6b",
      "parents": [
        "d1208f70738c91f13b4eadb1b7a694082e439da2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:52 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:56 2009 -0500"
      },
      "message": "NLM: Rewrite IPv4 privileged requester\u0027s check\n\nClean up.\n\nFor consistency, rewrite the IPv4 check to match the same style as the\nnew IPv6 check.  Note that ipv4_is_loopback() is somewhat broader in\nits interpretation of what is a loopback address than simply\n\"127.0.0.1\".\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d1208f70738c91f13b4eadb1b7a694082e439da2",
      "tree": "756e10b06467f9a9fd52f977a886b736def6f9f0",
      "parents": [
        "49b5699b3fc22b363534c509c1b7dba06bc677bf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:44 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:56 2009 -0500"
      },
      "message": "NLM: nlm_privileged_requester() doesn\u0027t recognize mapped loopback address\n\nCommit b85e4676 added the nlm_privileged_requester() helper to check\nwhether an RPC request was sent from a local privileged caller.  It\nrecognizes IPv4 privileged callers (from \"127.0.0.1\"), and IPv6\nprivileged callers (from \"::1\").\n\nHowever, IPV6_ADDR_LOOPBACK is not set for the mapped IPv4 loopback\naddress (::ffff:7f00:0001), so the test breaks when the kernel\u0027s RPC\nservice is IPv6-enabled but user space is calling via the IPv4\nloopback address.  This is actually the most common case for IPv6-\nenabled RPC services on Linux.\n\nRewrite the IPv6 check to handle the mapped IPv4 loopback address as\nwell as a normal IPv6 loopback address.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "49b5699b3fc22b363534c509c1b7dba06bc677bf",
      "tree": "e5c1e0d74918a902f1830dddf170d8c07155204e",
      "parents": [
        "b7ba597fb964dfa44284904b3b3d74d44b8e1c42"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:37 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:56 2009 -0500"
      },
      "message": "NSM: Move nsm_create()\n\nClean up: one last thing... relocate nsm_create() to eliminate the forward\ndeclaration and group it near the only function that actually uses it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b7ba597fb964dfa44284904b3b3d74d44b8e1c42",
      "tree": "a03c62f761cc823c29b9bafd083490b2a3627986",
      "parents": [
        "8529bc51d30b8f001734b29b21a51b579c260f5b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:29 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:55 2009 -0500"
      },
      "message": "NSM: Move nsm_use_hostnames to mon.c\n\nClean up.\n\nTreat the nsm_use_hostnames global variable like nsm_local_state.\nNote that the default value of nsm_use_hostnames is still zero.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8529bc51d30b8f001734b29b21a51b579c260f5b",
      "tree": "af1fe6d5cb2d67259d1c977731f523f2337a59eb",
      "parents": [
        "e6765b83977f07983c7a10e6bbb19d6c7bbfc3a4"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:22 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:55 2009 -0500"
      },
      "message": "NSM: Move nsm_addr() to fs/lockd/mon.c\n\nClean up: nsm_addr_in() is no longer used, and nsm_addr() is used only in\nfs/lockd/mon.c, so move it there.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "e6765b83977f07983c7a10e6bbb19d6c7bbfc3a4",
      "tree": "87ea535ec91aaa56263ffbb5a34c8e9541e77136",
      "parents": [
        "94da7663db26530a8377f7219f8be8bd4d4822c2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:14 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:55 2009 -0500"
      },
      "message": "NSM: Remove include/linux/lockd/sm_inter.h\n\nClean up: The include/linux/lockd/sm_inter.h header is nearly empty\nnow.  Remove it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "94da7663db26530a8377f7219f8be8bd4d4822c2",
      "tree": "a19b8cac6ce9010d58776cae18b96091a2137efb",
      "parents": [
        "77a3ef33e2de6fc8aabd7cb1700bfef81757c28a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:56:07 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:55 2009 -0500"
      },
      "message": "NSM: Replace IP address as our nlm_reboot lookup key\n\nNLM provides file locking services for NFS files.  Part of this service\nincludes a second protocol, known as NSM, which is a reboot\nnotification service.  NLM uses this service to determine when to\nreclaim locks or enter a grace period after a client or server reboots.\n\nThe NLM service (implemented by lockd in the Linux kernel) contacts\nthe local NSM service (implemented by rpc.statd in Linux user space)\nvia NSM protocol upcalls to register a callback when a particular\nremote peer reboots.\n\nTo match the callback to the correct remote peer, the NLM service\nconstructs a cookie that it passes in the request.  The NSM service\npasses that cookie back to the NLM service when it is notified that\nthe given remote peer has indeed rebooted.\n\nCurrently on Linux, the cookie is the raw 32-bit IPv4 address of the\nremote peer.  To support IPv6 addresses, which are larger, we could\nuse all 16 bytes of the cookie to represent a full IPv6 address,\nalthough we still can\u0027t represent an IPv6 address with a scope ID in\njust 16 bytes.\n\nInstead, to avoid the need for future changes to support additional\naddress types, we\u0027ll use a manufactured value for the cookie, and use\nthat to find the corresponding nsm_handle struct in the kernel during\nthe NLMPROC_SM_NOTIFY callback.\n\nThis should provide complete support in the kernel\u0027s NSM\nimplementation for IPv6 hosts, while remaining backwards compatible\nwith older rpc.statd implementations.\n\nNote we also deal with another case where nsm_use_hostnames can change\nwhile there are outstanding notifications, possibly resulting in the\nloss of reboot notifications.  After this patch, the priv cookie is\nalways used to lookup rebooted hosts in the kernel.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "77a3ef33e2de6fc8aabd7cb1700bfef81757c28a",
      "tree": "bb403f4517d49c7756921a70ba27ddce3963a05d",
      "parents": [
        "b39b897c259fc1fd1998505f2b1d4ec1f115bce1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:55:59 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:55 2009 -0500"
      },
      "message": "NSM: More clean up of nsm_get_handle()\n\nClean up: refactor nsm_get_handle() so it is organized the same way that\nnsm_reboot_lookup() is.\n\nThere is an additional micro-optimization here.  This change moves the\n\"hostname \u0026 nsm_use_hostnames\" test out of the list_for_each_entry()\nclause in nsm_get_handle(), since it is loop-invariant.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b39b897c259fc1fd1998505f2b1d4ec1f115bce1",
      "tree": "1b331bb4d1d71401d2dec0c7f23c86795c09267a",
      "parents": [
        "92fd91b998a5216a6d6606704e71d541a180216c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 11 17:55:52 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:55 2009 -0500"
      },
      "message": "NSM: Refactor nsm_handle creation into a helper function\n\nClean up.  Refactor the creation of nsm_handles into a helper.  Fields\nare initialized in increasing address order to make efficient use of\nCPU caches.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "92fd91b998a5216a6d6606704e71d541a180216c",
      "tree": "e3c181450d40e3d448a48c560aac858ea0e7aee5",
      "parents": [
        "8c7378fd2a5f22016542931b887a2ae98d146eaf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:04:01 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:54 2009 -0500"
      },
      "message": "NLM: Remove \"create\" argument from nsm_find()\n\nClean up: nsm_find() now has only one caller, and that caller\nunconditionally sets the @create argument. Thus the @create\nargument is no longer needed.\n\nSince nsm_find() now has a more specific purpose, pick a more\nappropriate name for it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8c7378fd2a5f22016542931b887a2ae98d146eaf",
      "tree": "e274fe98455ee385b8ba88917e7465c9332b8184",
      "parents": [
        "3420a8c4359a189f7d854ed7075d151257415447"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:54 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:54 2009 -0500"
      },
      "message": "NLM: Call nsm_reboot_lookup() instead of nsm_find()\n\nInvoke the newly introduced nsm_reboot_lookup() function in\nnlm_host_rebooted() instead of nsm_find().\n\nThis introduces just one behavioral change: debugging messages\nproduced during reboot notification will now appear when the\nNLMDBG_MONITOR flag is set, but not when the NLMDBG_HOSTCACHE flag\nis set.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "3420a8c4359a189f7d854ed7075d151257415447",
      "tree": "dbcfbcdd9383bc4a9bb832f6b4a8876461495dc8",
      "parents": [
        "576df4634e37e46b441fefb91915184edb13bb94"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:46 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:54 2009 -0500"
      },
      "message": "NSM: Add nsm_lookup() function\n\nIntroduce a new API to fs/lockd/mon.c that allows nlm_host_rebooted()\nto lookup up nsm_handles via the contents of an nlm_reboot struct.\n\nThe new function is equivalent to calling nsm_find() with @create set\nto zero, but it takes a struct nlm_reboot instead of separate\narguments.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "576df4634e37e46b441fefb91915184edb13bb94",
      "tree": "85dc6dc6dcf7eec104b7c78885a9e38123bb220f",
      "parents": [
        "7fefc9cb9d5f129c238d93166f705c96ca2e7e51"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:39 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:54 2009 -0500"
      },
      "message": "NLM: Decode \"priv\" argument of NLMPROC_SM_NOTIFY as an opaque\n\nThe NLM XDR decoders for the NLMPROC_SM_NOTIFY procedure should treat\ntheir \"priv\" argument truly as an opaque, as defined by the protocol,\nand let the upper layers figure out what is in it.\n\nThis will make it easier to modify the contents and interpretation of\nthe \"priv\" argument, and keep knowledge about what\u0027s in \"priv\" local\nto fs/lockd/mon.c.\n\nFor now, the NLM and NSM implementations should behave exactly as they\ndid before.\n\nThe formation of the address of the rebooted host in\nnlm_host_rebooted() may look a little strange, but it is the inverse\nof how nsm_init_private() forms the private cookie.  Plus, it\u0027s\ngoing away soon anyway.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7fefc9cb9d5f129c238d93166f705c96ca2e7e51",
      "tree": "3309560f4539ea8af3943524475cd9405f3c9c49",
      "parents": [
        "cab2d3c99165abbba2943f1b269003b17fd3b1cb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:31 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:54 2009 -0500"
      },
      "message": "NLM: Change nlm_host_rebooted() to take a single nlm_reboot argument\n\nPass the nlm_reboot data structure directly from the NLMPROC_SM_NOTIFY\nXDR decoders to nlm_host_rebooted().  This eliminates some packing and\nunpacking of the NLMPROC_SM_NOTIFY results, and prepares for passing\nthese results, including the \"priv\" cookie, directly to a lookup\nroutine in fs/lockd/mon.c.\n\nThis patch changes code organization but should not cause any\nbehavioral change.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "cab2d3c99165abbba2943f1b269003b17fd3b1cb",
      "tree": "8e5fe08d1caf86564e56a1936f7e32af7eebd0e0",
      "parents": [
        "7e44d3bea21fbb9494930d1cd35ca92a9a4a3279"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:24 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:54 2009 -0500"
      },
      "message": "NSM: Encode the new \"priv\" cookie for NSMPROC_MON requests\n\nPass the new \"priv\" cookie to NSMPROC_MON\u0027s XDR encoder, instead of\ncreating the \"priv\" argument in the encoder at call time.\n\nThis patch should not cause a behavioral change: the contents of the\ncookie remain the same for the time being.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7e44d3bea21fbb9494930d1cd35ca92a9a4a3279",
      "tree": "377fe5801ab1108aee2bc7f72d1b32618aa35e7f",
      "parents": [
        "05f3a9af58180d24a9decedd71d4587935782d70"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:16 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:53 2009 -0500"
      },
      "message": "NSM: Generate NSMPROC_MON\u0027s \"priv\" argument when nsm_handle is created\n\nIntroduce a new data type, used by both the in-kernel NLM and NSM\nimplementations, that is used to manage the opaque \"priv\" argument\nfor the NSMPROC_MON and NLMPROC_SM_NOTIFY calls.\n\nConstruct the \"priv\" cookie when the nsm_handle is created.\n\nThe nsm_init_private() function may look a little strange, but it is\nroughly equivalent to how the XDR encoder formed the \"priv\" argument.\nIt\u0027s going to go away soon.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "05f3a9af58180d24a9decedd71d4587935782d70",
      "tree": "c5c53a1aa8ba8fdf47f2613970c85ec0a4b0d63d",
      "parents": [
        "bc1cc6c4e476b60df48227165990c87a22db6bb7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:09 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:53 2009 -0500"
      },
      "message": "NSM: Remove !nsm check from nsm_release()\n\nThe nsm_release() function should never be called with a NULL handle\npoint.  If it is, that\u0027s a bug.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bc1cc6c4e476b60df48227165990c87a22db6bb7",
      "tree": "19919f4787df34201bd575ebf741a53e9879e084",
      "parents": [
        "5cf1c4b19db99d21d44c2ab457cfd44eb86b4439"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:03:01 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:53 2009 -0500"
      },
      "message": "NSM: Remove NULL pointer check from nsm_find()\n\nThe nsm_find() function should never be called with a NULL IP address\npointer.  If it is, that\u0027s a bug.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5cf1c4b19db99d21d44c2ab457cfd44eb86b4439",
      "tree": "83cc059073da8610351b64731f12e0505d11dc0d",
      "parents": [
        "67c6d107a689243979a2b5f15244b5261634a924"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:02:53 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:53 2009 -0500"
      },
      "message": "NSM: Add dprintk() calls in nsm_find and nsm_release\n\nIntroduce some dprintk() calls in fs/lockd/mon.c that are enabled by\nthe NLMDBG_MONITOR flag.  These report when we find, create, and\nrelease nsm_handles.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "67c6d107a689243979a2b5f15244b5261634a924",
      "tree": "36e2093df96a449c284640c9cc329fc251e98bd0",
      "parents": [
        "03eb1dcbb799304b58730f4dba65812f49fb305e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:02:45 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:53 2009 -0500"
      },
      "message": "NSM: Move nsm_find() to fs/lockd/mon.c\n\nThe nsm_find() function sets up fresh nsm_handle entries.  This is\nwhere we will store the \"priv\" cookie used to lookup nsm_handles during\nreboot recovery.  The cookie will be constructed when nsm_find()\ncreates a new nsm_handle.\n\nAs much as possible, I would like to keep everything that handles a\n\"priv\" cookie in fs/lockd/mon.c so that all the smarts are in one\nsource file.  That organization should make it pretty simple to see how\nall this works.\n\nTo me, it makes more sense than the current arrangement to keep\nnsm_find() with nsm_monitor() and nsm_unmonitor().\n\nSo, start reorganizing by moving nsm_find() into fs/lockd/mon.c.  The\nnsm_release() function comes along too, since it shares the nsm_lock\nglobal variable.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "03eb1dcbb799304b58730f4dba65812f49fb305e",
      "tree": "310306a570ae554fd420bdde1fdabe7f1157c255",
      "parents": [
        "36e8e668d3e6a61848a8921ddeb663b417299fa5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:02:15 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:53 2009 -0500"
      },
      "message": "NSM: move to xdr_stream-based XDR encoders and decoders\n\nIntroduce xdr_stream-based XDR encoder and decoder functions, which are\nmore careful about preventing RPC buffer overflows.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "36e8e668d3e6a61848a8921ddeb663b417299fa5",
      "tree": "c5ad964c566341f24ecf7d67f4b34173205e9143",
      "parents": [
        "9c1bfd037f7ff8badaecb47418f109148d88bf45"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:02:07 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:52 2009 -0500"
      },
      "message": "NSM: Move NSM program and procedure numbers to fs/lockd/mon.c\n\nClean up: Move the RPC program and procedure numbers for NSM into the\none source file that needs them: fs/lockd/mon.c.\n\nAnd, as with NLM, NFS, and rpcbind calls, use NSMPROC_FOO instead of\nSM_FOO for NSM procedure numbers.\n\nFinally, make a couple of comments more precise: what is referred to\nhere as SM_NOTIFY is really the NLM (lockd) NLMPROC_SM_NOTIFY downcall,\nnot NSMPROC_NOTIFY.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9c1bfd037f7ff8badaecb47418f109148d88bf45",
      "tree": "23435f76798f026e5cb1cdeb91077d854b359ac4",
      "parents": [
        "0c7aef4569f8680951b7dee01dddffb9d2f809ff"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Dec 05 19:01:59 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:52 2009 -0500"
      },
      "message": "NSM: Move NSM-related XDR data structures to lockd\u0027s xdr.h\n\nClean up: NSM\u0027s XDR data structures are used only in fs/lockd/mon.c,\nso move them there.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "0c7aef4569f8680951b7dee01dddffb9d2f809ff",
      "tree": "04a78e99cf53549dd8d32d6dbab5923f4f212f8d",
      "parents": [
        "356c3eb466fd1a12afd6448d90fba3922836e5f1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:46 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:52 2009 -0500"
      },
      "message": "NSM: Check result of SM_UNMON upcall\n\nMake sure any error returned by rpc.statd during an SM_UNMON call is\nreported rather than ignored completely.  There isn\u0027t much to do with\nsuch an error, but we should log it in any case.\n\nSimilar to a recent change to nsm_monitor().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "356c3eb466fd1a12afd6448d90fba3922836e5f1",
      "tree": "1b30ed40ea9ee8c0e548f71d7e36bafd293ad764",
      "parents": [
        "c8c23c423dec49cb439697d3dc714e1500ff1610"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:38 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:52 2009 -0500"
      },
      "message": "NLM: Move the public declaration of nsm_unmonitor() to lockd.h\n\nClean up.\n\nMake the nlm_host argument \"const,\" and move the public declaration to\nlockd.h.  Add a documenting comment.\n\nBruce observed that nsm_unmonitor()\u0027s only caller doesn\u0027t care about\nits return code, so make nsm_unmonitor() return void.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c8c23c423dec49cb439697d3dc714e1500ff1610",
      "tree": "161035f51e31cce6d9f8dc104bad62a329496a77",
      "parents": [
        "1e49323c4ab044d05bbc68cf13cadcbd4372468c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:31 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:52 2009 -0500"
      },
      "message": "NSM: Release nsmhandle in nlm_destroy_host\n\nThe nsm_handle\u0027s reference count is bumped in nlm_lookup_host().  It\nshould be decremented in nlm_destroy_host() to make it easier to see\nthe balance of these two operations.\n\nMove the nsm_release() call to fs/lockd/host.c.\n\nThe h_nsmhandle pointer is set in nlm_lookup_host(), and never cleared.\nThe nlm_destroy_host() function is never called for the same nlm_host\ntwice, so h_nsmhandle won\u0027t ever be NULL when nsm_unmonitor() is\ncalled.\n\nAll references to the nlm_host are gone before it is freed.  We can\nskip making h_nsmhandle NULL just before the nlm_host is deallocated.\n\nIt\u0027s also likely we can remove the h_nsmhandle NULL check in\nnlmsvc_is_client() as well, but we can do that later when rearchitect-\ning the nlm_host cache.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1e49323c4ab044d05bbc68cf13cadcbd4372468c",
      "tree": "5d997638d8595d3698d6e3b2c81292fb09b42ad8",
      "parents": [
        "5d254b119823658cc318f88589c6c426b3d0a153"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:24 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:52 2009 -0500"
      },
      "message": "NLM: Move the public declaration of nsm_monitor() to lockd.h\n\nClean up.\n\nMake the nlm_host argument \"const,\" and move the public declaration to\nlockd.h with other NSM public function (nsm_release, eg) and global\nvariable declarations.\n\nAdd a documenting comment.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5d254b119823658cc318f88589c6c426b3d0a153",
      "tree": "147bba86428c33650a686b70cbc32643c8547f86",
      "parents": [
        "5bc74bef7c9b652f0f2aa9c5a8d5ac86881aba79"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:15 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:51 2009 -0500"
      },
      "message": "NSM: Make sure to return an error if the SM_MON call result is not zero\n\nThe nsm_monitor() function reports an error and does not set sm_monitored\nif the SM_MON upcall reply has a non-zero result code, but nsm_monitor()\ndoes not return an error to its caller in this case.\n\nSince sm_monitored is not set, the upcall is retried when the next NLM\nrequest invokes nsm_monitor().  However, that may not come for a while.\nIn the meantime, at least one NLM request will potentially proceed\nwithout the peer being monitored properly.\n\nHave nsm_monitor() return an error if the result code is non-zero.\nThis will cause all NLM requests to fail immediately if the upcall\ncompleted successfully but rpc.statd returned an error.\n\nThis may be inconvenient in some cases (for example if rpc.statd\ncannot complete a proper DNS reverse lookup of the hostname), but will\nmake the reboot monitoring service more robust by forcing such issues\nto be corrected by an admin.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5bc74bef7c9b652f0f2aa9c5a8d5ac86881aba79",
      "tree": "476bb3b039e814e46f2675933a88470781fec5f2",
      "parents": [
        "501c1ed3fb5c2648ba1709282c71617910917f66"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:08 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:51 2009 -0500"
      },
      "message": "NSM: Remove BUG_ON() in nsm_monitor()\n\nClean up: Remove the BUG_ON() invocation in nsm_monitor().  It\u0027s not\nlikely that nsm_monitor() is ever called with a NULL host pointer, and\nthe code will die anyway if host is NULL.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "501c1ed3fb5c2648ba1709282c71617910917f66",
      "tree": "600bb4b00d4d222fceea5a8187f513e8eb979e61",
      "parents": [
        "9fee49024ed19d849413df4ab6ec1a1a60aaae94"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:21:01 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:51 2009 -0500"
      },
      "message": "NLM: Remove redundant printk() in nlmclnt_lock()\n\nThe nsm_monitor() function already generates a printk(KERN_NOTICE) if\nthe SM_MON upcall fails, so the similar printk() in the nlmclnt_lock()\nfunction is redundant.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9fee49024ed19d849413df4ab6ec1a1a60aaae94",
      "tree": "fc3830479d06275ac28ced9751bdcd3662ee3a34",
      "parents": [
        "29ed1407ed81086b778ebf12145b048ac3f7e10e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:53 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:51 2009 -0500"
      },
      "message": "NSM: Use sm_name instead of h_name in nsm_monitor() and nsm_unmonitor()\n\nClean up: Use the sm_name field for reporting the hostname in nsm_monitor()\nand nsm_unmonitor(), just as the other functions in fs/lockd/mon.c do.\n\nThe h_name field is just a copy of the sm_name pointer.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "29ed1407ed81086b778ebf12145b048ac3f7e10e",
      "tree": "35523669465a1a37f969054e1c3d7530582701fc",
      "parents": [
        "f47534f7f0ac7727e05ec4274b764b181df2cf7f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:46 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:51 2009 -0500"
      },
      "message": "NSM: Support IPv6 version of mon_name\n\nThe \"mon_name\" argument of the NSMPROC_MON and NSMPROC_UNMON upcalls\nis a string that contains the hostname or IP address of the remote peer\nto be notified when this host has rebooted.  The sm-notify command uses\nthis identifier to contact the peer when we reboot, so it must be\neither a well-qualified DNS hostname or a presentation format IP\naddress string.\n\nWhen the \"nsm_use_hostnames\" sysctl is set to zero, the kernel\u0027s NSM\nprovides a presentation format IP address in the \"mon_name\" argument.\nOtherwise, the \"caller_name\" argument from NLM requests is used,\nwhich is usually just the DNS hostname of the peer.\n\nTo support IPv6 addresses for the mon_name argument, we use the\nnsm_handle\u0027s address eye-catcher, which already contains an appropriate\npresentation format address string.  Using the eye-catcher string\nobviates the need to use a large buffer on the stack to form the\npresentation address string for the upcall.\n\nThis patch also addresses a subtle bug.\n\nAn NSMPROC_MON request and the subsequent NSMPROC_UNMON request for the\nsame peer are required to use the same value for the \"mon_name\"\nargument.  Otherwise, rpc.statd\u0027s NSMPROC_UNMON processing cannot\nlocate the database entry for that peer and remove it.\n\nIf the setting of nsm_use_hostnames is changed between the time the\nkernel sends an NSMPROC_MON request and the time it sends the\nNSMPROC_UNMON request for the same peer, the \"mon_name\" argument for\nthese two requests may not be the same.  This is because the value of\n\"mon_name\" is currently chosen at the moment the call is made based on\nthe setting of nsm_use_hostnames\n\nTo ensure both requests pass identical contents in the \"mon_name\"\nargument, we now select which string to use for the argument in the\nnsm_monitor() function.  A pointer to this string is saved in the\nnsm_handle so it can be used for a subsequent NSMPROC_UNMON upcall.\n\nNB: There are other potential problems, such as how nlm_host_rebooted()\nmight behave if nsm_use_hostnames were changed while hosts are still\nbeing monitored.  This patch does not attempt to address those\nproblems.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "f47534f7f0ac7727e05ec4274b764b181df2cf7f",
      "tree": "79cfac474c4971ca7efa10b8c5a6e4ba7f1aaf0a",
      "parents": [
        "5acf43155d1bcc412d892c73f64044f9a826cde6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:38 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:50 2009 -0500"
      },
      "message": "NSM: Use modern style for sm_name field in nsm_handle\n\nClean up: I\u0027m about to add another \"char *\" field to the nsm_handle\nstructure.  The sm_name field uses an older style of declaring a\n\"char *\" field.  If I match that style for the new field, checkpatch.pl\nwill complain.\n\nSo, fix the sm_name field to use the new style.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "5acf43155d1bcc412d892c73f64044f9a826cde6",
      "tree": "cc505431849be49a234f24bcc3290285a207e3fb",
      "parents": [
        "a4846750f090702e2fb848ac4fe5827bcef34060"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:31 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:50 2009 -0500"
      },
      "message": "NSM: convert printk(KERN_DEBUG) to a dprintk()\n\nClean up: make the printk(KERN_DEBUG) in nsm_mon_unmon() a dprintk,\nand add another dprintk to note if creating an RPC client for the\nupcall failed.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "a4846750f090702e2fb848ac4fe5827bcef34060",
      "tree": "657d2a61c0b6777c70eb40fcd42e44ee24a95264",
      "parents": [
        "afb03699dc0a920aed3322ad0e6895533941fb1e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:23 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:50 2009 -0500"
      },
      "message": "NSM: Use C99 structure initializer to initialize nsm_args\n\nClean up: Use a C99 structure initializer instead of open-coding the\ninitialization of nsm_args.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "afb03699dc0a920aed3322ad0e6895533941fb1e",
      "tree": "8be804b0e4985a5dba70fccc94ce0939292d3f8d",
      "parents": [
        "bc995801a09d1fead0bec1356bfd836911c8eed7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:16 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:49 2009 -0500"
      },
      "message": "NLM: Add helper to handle IPv4 addresses\n\nClean up: introduce a helper function to generate IPv4 addresses using\nthe same style as the IPv6 helper function we just added.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "bc995801a09d1fead0bec1356bfd836911c8eed7",
      "tree": "b7a2faad59bfa92db4057c23fcf7d31b70d20611",
      "parents": [
        "6999fb4016b2604c2f8a65586bba4a62a4b24ce7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:08 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:49 2009 -0500"
      },
      "message": "NLM: Support IPv6 scope IDs in nlm_display_address()\n\nScope ID support is needed since the kernel\u0027s NSM implementation is\nabout to use these displayed addresses as a mon_name in some cases.\n\nWhen nsm_use_hostnames is zero, without scope ID support NSM will fail\nto handle peers that contact us via a link-local address.  Link-local\naddresses do not work without an interface ID, which is stored in the\nsockaddr\u0027s sin6_scope_id field.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6999fb4016b2604c2f8a65586bba4a62a4b24ce7",
      "tree": "14639d66b17613d364898c4b59b01903f7db1bb6",
      "parents": [
        "1df40b609ad5a622904eb652109c287fe9c93ec5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:20:01 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:49 2009 -0500"
      },
      "message": "NLM: Remove AF_UNSPEC arm in nlm_display_address()\n\nAF_UNSPEC support is no longer needed in nlm_display_address() now\nthat a presentation address is no longer generated for the h_srcaddr\nfield.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "1df40b609ad5a622904eb652109c287fe9c93ec5",
      "tree": "53c2ea9b443d7a94c564116c4af706500dbbf889",
      "parents": [
        "7538ce1eb656a1477bedd5b1c202226e7abf5e7b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:19:53 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:49 2009 -0500"
      },
      "message": "NLM: Remove address eye-catcher buffers from nlm_host\n\nThe h_name field in struct nlm_host is a just copy of\nh_nsmhandle-\u003esm_name.  Likewise, the contents of the h_addrbuf field\nshould be identical to the sm_addrbuf field.\n\nThe h_srcaddrbuf field is used only in one place for debugging.  We can\nlive without this until we get %pI formatting for printk().\n\nCurrently these buffers are 48 bytes, but we need to support scope IDs\nin IPv6 presentation addresses, which means making the buffers even\nlarger.  Instead, let\u0027s find ways to eliminate them to save space.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7538ce1eb656a1477bedd5b1c202226e7abf5e7b",
      "tree": "4da1c55aebda14ae24736d3d69444d099e6822b3",
      "parents": [
        "c72a476b4b7ecadb80185de31236edb303c1a5d0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Dec 04 14:19:45 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:48 2009 -0500"
      },
      "message": "NLM: Use modern style for pointer fields in nlm_host\n\nClean up: I\u0027m about to add another \"char *\" field to the nlm_host\nstructure.  The h_name field, for example, uses an older style of\ndeclaring a \"char *\" field.  If I match that style for the new field,\ncheckpatch.pl will complain.\n\nSo, fix pointer fields to use the new style.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "c72a476b4b7ecadb80185de31236edb303c1a5d0",
      "tree": "c57ac715970c4a3363b28122ce2d3b47fe179b7f",
      "parents": [
        "c9233eb7b0b11ef176d4bf68da2ce85464b6ec39"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Oct 20 11:51:58 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:48 2009 -0500"
      },
      "message": "lockd: set svc_serv-\u003esv_maxconn to a more reasonable value (try #3)\n\nThe default method for calculating the number of connections allowed\nper RPC service arbitrarily limits single-threaded services to 80\nconnections. This is too low for services like lockd and artificially\nlimits the number of TCP clients that it can support.\n\nHave lockd set a default sv_maxconn value to 1024 (which is the typical\ndefault value for RLIMIT_NOFILE. Also add a module parameter to allow an\nadmin to set this to an arbitrary value.\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": "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": "548eaca46b3cf4419b6c2be839a106d8641ffb70",
      "tree": "81f41403c6196d45f9195722cc6d7e5c44410969",
      "parents": [
        "2bd9e7b62e6e1da3f881c40c73d93e9a212ce6de"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Oct 20 17:48:43 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:47 2009 -0500"
      },
      "message": "nfsd: document new filehandle fsid types\n\nDescriptions taken from mountd code (in nfs-utils/utils/mountd/cache.c).\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2bd9e7b62e6e1da3f881c40c73d93e9a212ce6de",
      "tree": "dc378a128825bbf80367abb9ea8f75261ed1d05c",
      "parents": [
        "9346eff0dea1e5855fba25c9fe639d92a4db3135"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Mon Oct 20 11:47:09 2008 +0530"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:47 2009 -0500"
      },
      "message": "nfsd: Fix leaked memory in nfs4_make_rec_clidname\n\ncksum.data is not freed up in one error case. Compile tested.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9346eff0dea1e5855fba25c9fe639d92a4db3135",
      "tree": "938e9ee1f31d45c2dbf22e39cc81eb4deacea310",
      "parents": [
        "b3d47676d474ecd914c72049c87e71e5f0ffe040"
      ],
      "author": {
        "name": "Krishna Kumar",
        "email": "krkumar2@in.ibm.com",
        "time": "Mon Oct 20 11:44:28 2008 +0530"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:45 2009 -0500"
      },
      "message": "nfsd: Minor cleanup of find_stateid\n\nMinor cleanup/rewrite of find_stateid. Compile tested.\n\nSigned-off-by: Krishna Kumar \u003ckrkumar2@in.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b3d47676d474ecd914c72049c87e71e5f0ffe040",
      "tree": "cdf0016aac0fc81abe75aac56f5349022d2fd2e5",
      "parents": [
        "238c6d54830c624f34ac9cf123ac04aebfca5013"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Oct 20 13:01:59 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jan 06 11:53:45 2009 -0500"
      },
      "message": "nfsd: update fh_verify description\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "238c6d54830c624f34ac9cf123ac04aebfca5013",
      "tree": "43b7f595013483382a3053237c45d9d2824e0295",
      "parents": [
        "8e128ce3318a147903c893de1891f6c2306f8a61",
        "a159c1ac5f33c6cf0f5aa3c9d1ccdc82c907ee46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:20:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:20:59 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-2.6-dm:\n  dm snapshot: extend exception store functions\n  dm snapshot: split out exception store implementations\n  dm snapshot: rename struct exception_store\n  dm snapshot: separate out exception store interface\n  dm mpath: move trigger_event to system workqueue\n  dm: add name and uuid to sysfs\n  dm table: rework reference counting\n  dm: support barriers on simple devices\n  dm request: extend target interface\n  dm request: add caches\n  dm ioctl: allow dm_copy_name_and_uuid to return only one field\n  dm log: ensure log bitmap fits on log device\n  dm log: move region_size validation\n  dm log: avoid reinitialising io_req on every operation\n  dm: consolidate target deregistration error handling\n  dm raid1: fix error count\n  dm log: fix dm_io_client leak on error paths\n  dm snapshot: change yield to msleep\n  dm table: drop reference at unbind\n"
    },
    {
      "commit": "a159c1ac5f33c6cf0f5aa3c9d1ccdc82c907ee46",
      "tree": "2cb6bfd3f376e2366f3e3820ebd07a0a86a01cfc",
      "parents": [
        "4db6bfe02bdc7dc5048f46dd682a94801d029adc"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:19 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:19 2009 +0000"
      },
      "message": "dm snapshot: extend exception store functions\n\nSupply dm_add_exception as a callback to the read_metadata function.\nAdd a status function ready for a later patch and name the functions\nconsistently.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4db6bfe02bdc7dc5048f46dd682a94801d029adc",
      "tree": "780a41560ea05266288853204f0d7e4eef4f6355",
      "parents": [
        "1ae25f9c933d1432fbffdf3e126051a974608abf"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:17 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:17 2009 +0000"
      },
      "message": "dm snapshot: split out exception store implementations\n\nMove the existing snapshot exception store implementations out into\nseparate files.  Later patches will place these behind a new\ninterface in preparation for alternative implementations.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "1ae25f9c933d1432fbffdf3e126051a974608abf",
      "tree": "5a15a6330107a70a51d0c3cfe0bf703762e79839",
      "parents": [
        "aea53d92f70eeb00ae480e399a997dd55fd5055d"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:16 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:16 2009 +0000"
      },
      "message": "dm snapshot: rename struct exception_store\n\nRename struct exception_store to dm_exception_store.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "aea53d92f70eeb00ae480e399a997dd55fd5055d",
      "tree": "55e087e5e22168ed87f6d51ca0c8557a7678834f",
      "parents": [
        "fe9cf30eb8186ef267d1868dc9f12f2d0f40835a"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:05:15 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:15 2009 +0000"
      },
      "message": "dm snapshot: separate out exception store interface\n\nPull structures that bridge the gap between snapshot and\nexception store out of dm-snap.h and put them in a new\n.h file - dm-exception-store.h.  This file will define the\nAPI for new exception stores.\n\nUltimately, dm-snap.h is unnecessary, since only dm-snap.c\nshould be using it.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "fe9cf30eb8186ef267d1868dc9f12f2d0f40835a",
      "tree": "357db984073d7362b6c31dd431f77768c65800bf",
      "parents": [
        "784aae735d9b0bba3f8b9faef4c8b30df3bf0128"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:13 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:13 2009 +0000"
      },
      "message": "dm mpath: move trigger_event to system workqueue\n\nThe same workqueue is used both for sending uevents and processing queued I/O.\nDeadlock has been reported in RHEL5 when sending a uevent was blocked waiting\nfor the queued I/O to be processed.  Use scheduled_work() for the asynchronous\nuevents instead.\n\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "784aae735d9b0bba3f8b9faef4c8b30df3bf0128",
      "tree": "7e2e956c395b27f63569d7a6adc1098f116cc3a4",
      "parents": [
        "d58168763f74d1edbc296d7038c60efe6493fdd4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:12 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:12 2009 +0000"
      },
      "message": "dm: add name and uuid to sysfs\n\nImplement simple read-only sysfs entry for device-mapper block device.\n\nThis patch adds a simple sysfs directory named \"dm\" under block device\nproperties and implements\n\t- name attribute (string containing mapped device name)\n\t- uuid attribute (string containing UUID, or empty string if not set)\n\nThe kobject is embedded in mapped_device struct, so no additional\nmemory allocation is needed for initializing sysfs entry.\n\nDuring the processing of sysfs attribute we need to lock mapped device\nwhich is done by a new function dm_get_from_kobj, which returns the md\nassociated with kobject and increases the usage count.\n\nEach \u0027show attribute\u0027 function is responsible for its own locking.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d58168763f74d1edbc296d7038c60efe6493fdd4",
      "tree": "03866d641211fe16961a5b8aab6d9132bf07d9c8",
      "parents": [
        "ab4c1424882be9cd70b89abf2b484add355712fa"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:05:10 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:10 2009 +0000"
      },
      "message": "dm table: rework reference counting\n\nRework table reference counting.\n\nThe existing code uses a reference counter. When the last reference is\ndropped and the counter reaches zero, the table destructor is called.\nTable reference counters are acquired/released from upcalls from other\nkernel code (dm_any_congested, dm_merge_bvec, dm_unplug_all).\nIf the reference counter reaches zero in one of the upcalls, the table\ndestructor is called from almost random kernel code.\n\nThis leads to various problems:\n* dm_any_congested being called under a spinlock, which calls the\n  destructor, which calls some sleeping function.\n* the destructor attempting to take a lock that is already taken by the\n  same process.\n* stale reference from some other kernel code keeps the table\n  constructed, which keeps some devices open, even after successful\n  return from \"dmsetup remove\". This can confuse lvm and prevent closing\n  of underlying devices or reusing device minor numbers.\n\nThe patch changes reference counting so that the table destructor can be\ncalled only at predetermined places.\n\nThe table has always exactly one reference from either mapped_device-\u003emap\nor hash_cell-\u003enew_map. After this patch, this reference is not counted\nin table-\u003eholders.  A pair of dm_create_table/dm_destroy_table functions\nis used for table creation/destruction.\n\nTemporary references from the other code increase table-\u003eholders. A pair\nof dm_table_get/dm_table_put functions is used to manipulate it.\n\nWhen the table is about to be destroyed, we wait for table-\u003eholders to\nreach 0. Then, we call the table destructor.  We use active waiting with\nmsleep(1), because the situation happens rarely (to one user in 5 years)\nand removing the device isn\u0027t performance-critical task: the user doesn\u0027t\ncare if it takes one tick more or not.\n\nThis way, the destructor is called only at specific points\n(dm_table_destroy function) and the above problems associated with lazy\ndestruction can\u0027t happen.\n\nFinally remove the temporary protection added to dm_any_congested().\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ab4c1424882be9cd70b89abf2b484add355712fa",
      "tree": "8baed3606be67900df9f02e42fcdb091b78c5def",
      "parents": [
        "7d76345da6ed3927c9cbf5d3f7a7021e8bba7374"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Jan 06 03:05:09 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:09 2009 +0000"
      },
      "message": "dm: support barriers on simple devices\n\nImplement barrier support for single device DM devices\n\nThis patch implements barrier support in DM for the common case of dm linear\njust remapping a single underlying device. In this case we can safely\npass the barrier through because there can be no reordering between\ndevices.\n\n NB. Any DM device might cease to support barriers if it gets\n     reconfigured so code must continue to allow for a possible\n     -EOPNOTSUPP on every barrier bio submitted.  - agk\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7d76345da6ed3927c9cbf5d3f7a7021e8bba7374",
      "tree": "d0b470dd1a55dfffb27ffa012e4a5afebd133495",
      "parents": [
        "8fbf26ad5b16ad3a826ca7fe3e86700420abed1f"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Tue Jan 06 03:05:07 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:07 2009 +0000"
      },
      "message": "dm request: extend target interface\n\nThis patch adds the following target interfaces for request-based dm.\n\n  map_rq    : for mapping a request\n\n  rq_end_io : for finishing a request\n\n  busy      : for avoiding performance regression from bio-based dm.\n              Target can tell dm core not to map requests now, and\n              that may help requests in the block layer queue to be\n              bigger by I/O merging.\n              In bio-based dm, this behavior is done by device\n              drivers managing the block layer queue.\n              But in request-based dm, dm core has to do that\n              since dm core manages the block layer queue.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8fbf26ad5b16ad3a826ca7fe3e86700420abed1f",
      "tree": "43bc5cc2ca90ea394682daa4b665a46ebb110b97",
      "parents": [
        "23d39f63aa87e812fd879b8bc32ee6ccfe733de3"
      ],
      "author": {
        "name": "Kiyoshi Ueda",
        "email": "k-ueda@ct.jp.nec.com",
        "time": "Tue Jan 06 03:05:06 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:06 2009 +0000"
      },
      "message": "dm request: add caches\n\nThis patch prepares some kmem_caches for request-based dm.\n\nSigned-off-by: Kiyoshi Ueda \u003ck-ueda@ct.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "23d39f63aa87e812fd879b8bc32ee6ccfe733de3",
      "tree": "3535af0aff56260cdbf573a704e3f0122c6cfc8b",
      "parents": [
        "ac1f0ac22c7be908fd33407273b9808bfaedada4"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:04 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:04 2009 +0000"
      },
      "message": "dm ioctl: allow dm_copy_name_and_uuid to return only one field\n\nAllow NULL buffer in dm_copy_name_and_uuid if you only want to return one of\nthe fields.\n\n(Required by a following patch that adds these fields to sysfs.)\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReviewed-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ac1f0ac22c7be908fd33407273b9808bfaedada4",
      "tree": "f6a867138918b591639464802744506f6b83ad14",
      "parents": [
        "2045e88edb4e0c9ce62d317f77dc59d27d9c530e"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:02 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:02 2009 +0000"
      },
      "message": "dm log: ensure log bitmap fits on log device\n\nCheck that the log bitmap will fit within the log device.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2045e88edb4e0c9ce62d317f77dc59d27d9c530e",
      "tree": "324eeea271b889263d0141fe0c82d4b0e43d0079",
      "parents": [
        "6f3af01cb0eda0ec50fe1e4cbdf028269dc396fe"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Tue Jan 06 03:05:01 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:05:01 2009 +0000"
      },
      "message": "dm log: move region_size validation\n\nMove log size validation from mirror target to log constructor.\n\nRemoved PAGE_SIZE restriction we no longer think necessary.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "6f3af01cb0eda0ec50fe1e4cbdf028269dc396fe",
      "tree": "29988ebe5a40ee1092bdbeac45eb0bdc312ff670",
      "parents": [
        "10d3bd09a3c25df114f74f7f86e1b58d070bef32"
      ],
      "author": {
        "name": "Takahiro Yasui",
        "email": "tyasui@redhat.com",
        "time": "Tue Jan 06 03:04:59 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:59 2009 +0000"
      },
      "message": "dm log: avoid reinitialising io_req on every operation\n\nrw_header function updates three members of io_req data every time\nwhen I/O is processed. bi_rw and notify.fn are never modified once\nthey get initialized, and so they can be set in advance.\n\nheader_to_disk() can also be pulled out of write_header() since only one\ncaller needs it and write_header() can be replaced by rw_header()\ndirectly.\n\nSigned-off-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "10d3bd09a3c25df114f74f7f86e1b58d070bef32",
      "tree": "a44e2fe5ccc5950b87a1d31849e5f0ac24fdcc16",
      "parents": [
        "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:58 2009 +0000"
      },
      "message": "dm: consolidate target deregistration error handling\n\nChange dm_unregister_target to return void and use BUG() for error\nreporting.\n\ndm_unregister_target can only fail because of programming bug in the\ntarget driver. It can\u0027t fail because of user\u0027s behavior or disk errors.\n\nThis patch changes unregister_target to return void and use BUG if\nsomeone tries to unregister non-registered target or unregister target\nthat is in use.\n\nThis patch removes code duplication (testing of error codes in all dm\ntargets) and reports bugs in just one place, in dm_unregister_target. In\nsome target drivers, these return codes were ignored, which could lead\nto a situation where bugs could be missed.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d460c65a6a9ec9e0d284864ec3a9a2d1b73f0e43",
      "tree": "84131d888f5ec610cc343ca7188a5d4044043c2b",
      "parents": [
        "c7a2bd19b7c1e0bd2c7604c53d2583e91e536948"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Tue Jan 06 03:04:57 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:57 2009 +0000"
      },
      "message": "dm raid1: fix error count\n\nAlways increase the error count when I/O on a leg of a mirror fails.\n\nThe error count is used to decide whether to select an alternative\nmirror leg.  If the target doesn\u0027t use the \"handle_errors\" feature, the\nerror count is not updated and the bio can get requeued forever by the\nread callback.\n\nFix it by increasing error_count before the handle_errors feature\nchecking.\n\nCc: stable@kernel.org\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c7a2bd19b7c1e0bd2c7604c53d2583e91e536948",
      "tree": "bb896040c05397026745de9d05bd6f491d26603f",
      "parents": [
        "90fa1527bddc7147dc0d590ee6184ca88bc50ecf"
      ],
      "author": {
        "name": "Takahiro Yasui",
        "email": "tyasui@redhat.com",
        "time": "Tue Jan 06 03:04:56 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:56 2009 +0000"
      },
      "message": "dm log: fix dm_io_client leak on error paths\n\nIn create_log_context function, dm_io_client_destroy function needs\nto be called, when memory allocation of disk_header, sync_bits and\nrecovering_bits failed, but dm_io_client_destroy is not called.\n\nCc: stable@kernel.org\nSigned-off-by: Takahiro Yasui \u003ctyasui@redhat.com\u003e\nAcked-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "90fa1527bddc7147dc0d590ee6184ca88bc50ecf",
      "tree": "a6b692b5a7ef777cbd8f2927783f593234b091d1",
      "parents": [
        "a1b51e98676932d031f5eec1325b2df4bbdc8f26"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:54 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:54 2009 +0000"
      },
      "message": "dm snapshot: change yield to msleep\n\nChange yield() to msleep(1). If the thread had realtime priority,\nyield() doesn\u0027t really yield, so the yielding process would loop\nindefinitely and cause machine lockup.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a1b51e98676932d031f5eec1325b2df4bbdc8f26",
      "tree": "0dda5c172f6ef1880dbc9eafb9eb6d404c9447c6",
      "parents": [
        "fe0bdec68b77020281dc814805edfe594ae89e0f"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Tue Jan 06 03:04:53 2009 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Tue Jan 06 03:04:53 2009 +0000"
      },
      "message": "dm table: drop reference at unbind\n\nMove one dm_table_put() so that the last reference in the thread\ngets dropped in __unbind().\n\nThis is required for a following patch,\ndm-table-rework-reference-counting.patch, which will change the logic in\nsuch a way that table destructor is called only at specific points in\nthe code.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "8e128ce3318a147903c893de1891f6c2306f8a61",
      "tree": "3b45e780570e9beb9ec8e83c677f2d9fd9b458ce",
      "parents": [
        "0bbb2753584231db364b624bf8cf82551b94da7d",
        "3f874b6643e189d3d07618928ceed0013d71593e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:04:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:04:09 2009 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.o-hand.com/linux-mfd\n\n* \u0027for-next\u0027 of git://git.o-hand.com/linux-mfd: (30 commits)\n  mfd: Fix section mismatch in da903x\n  mfd: move drivers/i2c/chips/menelaus.c to drivers/mfd\n  mfd: move drivers/i2c/chips/tps65010.c to drivers/mfd\n  mfd: dm355evm msp430 driver\n  mfd: Add missing break from wm3850-core\n  mfd: Add WM8351 support\n  mfd: Support configurable numbers of DCDCs and ISINKs on WM8350\n  mfd: Handle missing WM8350 platform data\n  mfd: Add WM8352 support\n  mfd: Use irq_to_desc in twl4030 code\n  power_supply: Add Dialog DA9030 battery charger driver\n  mfd: Dialog DA9030 battery charger MFD driver\n  mfd: Register WM8400 codec device\n  mfd: Pass driver_data onto child devices\n  mfd: Fix twl4030-core.c build error\n  mfd: twl4030 regulator bug fixes\n  mfd: twl4030: create some regulator devices\n  mfd: twl4030: cleanup symbols and OMAP dependency\n  mfd: twl4030: simplified child creation code\n  power_supply: Add battery health reporting for WM8350\n  ...\n"
    },
    {
      "commit": "0bbb2753584231db364b624bf8cf82551b94da7d",
      "tree": "559c49330037fa4e2f5d231e06576f80dc49caaf",
      "parents": [
        "0578c3b4d44c34e499e1fd5916ed6c63635b25cf",
        "9e01892c4234070bbcf3a9f582514c8b91464375"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:39 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: convert to stop_machine_create/destroy.\n  stop_machine: introduce stop_machine_create/destroy.\n  parisc: fix module loading failure of large kernel modules\n  module: fix module loading failure of large kernel modules for parisc\n  module: fix warning of unused function when !CONFIG_PROC_FS\n  kernel/module.c: compare symbol values when marking symbols as exported in /proc/kallsyms.\n  remove CONFIG_KMOD\n"
    },
    {
      "commit": "0578c3b4d44c34e499e1fd5916ed6c63635b25cf",
      "tree": "7bcf1e4bb08984b2f5671a48c052c26903855ba6",
      "parents": [
        "7d8a804c594b61a05c698126165b5dc417d94a0f",
        "52942b6b16c6ebb25f4dd4df0208d840ba0cbc5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:11 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:03:11 2009 -0800"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  swiotlb: Don\u0027t include linux/swiotlb.h twice in lib/swiotlb.c\n  intel-iommu: fix build error with INTR_REMAP\u003dy and DMAR\u003dn\n  swiotlb: add missing __init annotations\n"
    },
    {
      "commit": "7d8a804c594b61a05c698126165b5dc417d94a0f",
      "tree": "5718ed900d1a8aa7d85eaa02dc27fda8230a688e",
      "parents": [
        "c58bd34d00e04df9a0691732086cf8102b20d907",
        "722d74219ea21223c74e5e894b0afcc5e4ca75a7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:02:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 19:02:09 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  dlm: fs/dlm/ast.c: fix warning\n  dlm: add new debugfs entry\n  dlm: add time stamp of blocking callback\n  dlm: change lock time stamping\n  dlm: improve how bast mode handling\n  dlm: remove extra blocking callback check\n  dlm: replace schedule with cond_resched\n  dlm: remove kmap/kunmap\n  dlm: trivial annotation of be16 value\n  dlm: fix up memory allocation flags\n"
    },
    {
      "commit": "c58bd34d00e04df9a0691732086cf8102b20d907",
      "tree": "82e0a95b582974351f24cdf812d023c38d921474",
      "parents": [
        "8606ab6d30dbaaafff985bd462bf33c36997eae9",
        "88f60f62f31092db46aa5c71bf6da67c958bc420"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:58:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:58:06 2009 -0800"
      },
      "message": "Merge branch \u0027i2c-next\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux\n\n* \u0027i2c-next\u0027 of git://aeryn.fluff.org.uk/bjdooks/linux:\n  i2c-omap: fix type of irq handler function\n  i2c-s3c2410: Change IRQ to be plain integer.\n  i2c-s3c2410: Allow more than one i2c-s3c2410 adapter\n  i2c-s3c2410: Remove default platform data.\n  i2c-s3c2410: Use platform data for gpio configuration\n  i2c-s3c2410: Fixup style problems from checkpatch.pl\n  i2c-omap: Enable I2C wakeups for 34xx\n  i2c-omap: reprogram OCP_SYSCONFIG register after reset\n  i2c-omap: convert \u0027rev1\u0027 flag to generic \u0027rev\u0027 u8\n  i2c-omap: fix I2C timeouts due to recursive omap_i2c_{un,}idle()\n  i2c-omap: Clean-up i2c-omap\n  i2c-omap: Don\u0027t compile in OMAP15xx I2C ISR for non-OMAP15xx builds\n  i2c-omap: Mark init-only functions as __init\n  i2c-omap: Add support for omap34xx\n  i2c-omap: FIFO handling support and broken hw workaround for i2c-omap\n  i2c-omap: Add high-speed support to omap-i2c\n  i2c-omap: Close suspected race between omap_i2c_idle() and omap_i2c_isr()\n  i2c-omap: Do not use interruptible wait call in omap_i2c_xfer_msg\n\nFix up apparently-trivial conflict in drivers/i2c/busses/i2c-s3c2410.c\n"
    },
    {
      "commit": "8606ab6d30dbaaafff985bd462bf33c36997eae9",
      "tree": "4a31a004438370e5e51f5f042badfac850ec9ac8",
      "parents": [
        "c54febae996d36c630f09209cd9983ecfda3fcad",
        "ed42350e02bfcb333024949e9653d06916135cc5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:53:34 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:53:34 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (22 commits)\n  HID: fix error condition propagation in hid-sony driver\n  HID: fix reference count leak hidraw\n  HID: add proper support for pensketch 12x9 tablet\n  HID: don\u0027t allow DealExtreme usb-radio be handled by usb hid driver\n  HID: fix default Kconfig setting for TopSpeed driver\n  HID: driver for TopSeed Cyberlink quirky remote\n  HID: make boot protocol drivers depend on EMBEDDED\n  HID: avoid sparse warning in HID_COMPAT_LOAD_DRIVER\n  HID: hiddev cleanup -- handle all error conditions properly\n  HID: force feedback driver for GreenAsia 0x12 PID\n  HID: switch specialized drivers from \"default y\" to !EMBEDDED\n  HID: set proper dev.parent in hidraw\n  HID: add dynids facility\n  HID: use GFP_KERNEL in hid_alloc_buffers\n  HID: usbhid, use usb_endpoint_xfer_int\n  HID: move usbhid flags to usbhid.h\n  HID: add n-trig digitizer support\n  HID: add phys and name ioctls to hidraw\n  HID: struct device - replace bus_id with dev_name(), dev_set_name()\n  HID: automatically call usbhid_set_leds in usbhid driver\n  ...\n"
    },
    {
      "commit": "c54febae996d36c630f09209cd9983ecfda3fcad",
      "tree": "35b2717dcd4e4ff2206cd468b5895afb16f49c8c",
      "parents": [
        "e42e4ba07bc72c0eb7c7ab3bf9e5076db90d0f37",
        "eb8374e71f941a1b3c2ed6ea19dc809e7124dc5d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:52:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:52:54 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (27 commits)\n  GFS2: Use DEFINE_SPINLOCK\n  GFS2: Fix use-after-free bug on umount (try #2)\n  Revert \"GFS2: Fix use-after-free bug on umount\"\n  GFS2: Streamline alloc calculations for writes\n  GFS2: Send useful information with uevent messages\n  GFS2: Fix use-after-free bug on umount\n  GFS2: Remove ancient, unused code\n  GFS2: Move four functions from super.c\n  GFS2: Fix bug in gfs2_lock_fs_check_clean()\n  GFS2: Send some sensible sysfs stuff\n  GFS2: Kill two daemons with one patch\n  GFS2: Move gfs2_recoverd into recovery.c\n  GFS2: Fix \"truncate in progress\" hang\n  GFS2: Clean up \u0026 move gfs2_quotad\n  GFS2: Add more detail to debugfs glock dumps\n  GFS2: Banish struct gfs2_rgrpd_host\n  GFS2: Move rg_free from gfs2_rgrpd_host to gfs2_rgrpd\n  GFS2: Move rg_igeneration into struct gfs2_rgrpd\n  GFS2: Banish struct gfs2_dinode_host\n  GFS2: Move i_size from gfs2_dinode_host and rename it to i_disksize\n  ...\n"
    },
    {
      "commit": "e42e4ba07bc72c0eb7c7ab3bf9e5076db90d0f37",
      "tree": "f3eec0c563da05c2f0de3463edd45735c9c2f3c7",
      "parents": [
        "7a1fcd5f5130f173b5e824135735ec58f245563e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:47:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:47:12 2009 -0800"
      },
      "message": "igb: fix anoying type mismatch warning on rx/tx queue sizing\n\nWhen using \"min()\", the types of both sides should match.  With the cpu\nmask changes, the type of num_online_cpus() will now depend on config\noptions. Use \"min_t()\" with an explicit type instead.\n\nAnd make the rx/tx case look the same too, just for sanity.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a1fcd5f5130f173b5e824135735ec58f245563e",
      "tree": "fc21e9f5592ef58a5d98a4bf1ccd6f44010cbca3",
      "parents": [
        "15b0669072127f282896b3bef2e9df4ec5d7264f",
        "4696b64d234b84b5b70ffd49a76833aa5c49cb61"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:45:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:45:06 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6: (30 commits)\n  sparc: Fix minor SPARC32 compile error\n  sparc: Remove reg*.h from Kbuild\n  sparc: Clean arch-specific code in prom_common.c\n  sparc: Kill asm/reg*.h\n  sparc: Use 64BIT config entry\n  MAINTAINERS: update sparc maintainer\n  sparc: unify ipcbuf.h\n  sparc: Update 64-bit defconfig.\n  sparc: remove NO_PROC_ID - it is no longer used\n  sparc: drop get_tbr() in traps.h\n  sparc: fix warning in userspace header traps.h\n  sparc: fix warnings in userspace header byteorder.h\n  sparc: fix warning in userspace header jsflash.h\n  sparc: unify openprom.h\n  sparc64: delete unused linux_prom64_ranges from openprom_64.h\n  sparc: prepare openprom for unification\n  sparc: remove linux_prom_pci_assigned_addresses from openprom_32.h\n  sparc: remove ebus definitions from openprom*.h\n  sparc: unify siginfo.h\n  sparc: unify ptrace.h\n  ...\n"
    },
    {
      "commit": "15b0669072127f282896b3bef2e9df4ec5d7264f",
      "tree": "8480e09bbc7c26cd5c9ef048b734664cb6fe76be",
      "parents": [
        "c155b914651753f843445d2f860bc00137df5d52",
        "3537d54c0c39de5738bba8d19f128478b0b96a71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:44:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:44:59 2009 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (44 commits)\n  qlge: Fix sparse warnings for tx ring indexes.\n  qlge: Fix sparse warning regarding rx buffer queues.\n  qlge: Fix sparse endian warning in ql_hw_csum_setup().\n  qlge: Fix sparse endian warning for inbound packet control block flags.\n  qlge: Fix sparse warnings for byte swapping in qlge_ethool.c\n  myri10ge: print MAC and serial number on probe failure\n  pkt_sched: cls_u32: Fix locking in u32_change()\n  iucv: fix cpu hotplug\n  af_iucv: Free iucv path/socket in path_pending callback\n  af_iucv: avoid left over IUCV connections from failing connects\n  af_iucv: New error return codes for connect()\n  net/ehea: bitops work on unsigned longs\n  Revert \"net: Fix for initial link state in 2.6.28\"\n  tcp: Kill extraneous SPLICE_F_NONBLOCK checks.\n  tcp: don\u0027t mask EOF and socket errors on nonblocking splice receive\n  dccp: Integrate the TFRC library with DCCP\n  dccp: Clean up ccid.c after integration of CCID plugins\n  dccp: Lockless integration of CCID congestion-control plugins\n  qeth: get rid of extra argument after printk to dev_* conversion\n  qeth: No large send using EDDP for HiperSockets.\n  ...\n"
    },
    {
      "commit": "c155b914651753f843445d2f860bc00137df5d52",
      "tree": "8a90674dfad7dd7e470d64819f8b7b490de35c2d",
      "parents": [
        "e9af797d757d358f60130de6ca59ee658d666561",
        "3a5e1d1792729f384c10db966feb8bab76c991ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:34:12 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:34:12 2009 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:\n  ALSA: ice1724 - Fix a typo in IEC958 PCM name\n  ASoC: fix davinci-sffsdr buglet\n  ALSA: sound/usb: Use negated usb_endpoint_xfer_control, etc\n  ALSA: hda - cxt5051 report jack state\n  ALSA: hda - add basic jack reporting functions to patch_conexant.c\n  ALSA: Use usb_set/get_intfdata\n  ASoC: Clean up kerneldoc warnings\n  ASoC: Fix pxa2xx-pcm checks for invalid DMA channels\n  LSA: hda - Add HP Acacia detection\n  ALSA: hda - fix name for ALC1200\n  ALSA: sound/usb: use USB API functions rather than constants\n  ASoC: TWL4030: DAPM based capture implementation\n  ASoC: TWL4030: Make the enum filter generic for twl4030\n"
    },
    {
      "commit": "e9af797d757d358f60130de6ca59ee658d666561",
      "tree": "1c634c98b2c11ddfa86d1c38e35ed33eb316827c",
      "parents": [
        "10cc04f5a01041ffff068b3f9b195bfdc5290c45",
        "187d9f4ed4fc089f1f25a875fb485e27626972f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:33:38 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:33:38 2009 -0800"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:\n  [CPUFREQ] Fix on resume, now preserves user policy min/max.\n  [CPUFREQ] Add Celeron Core support to p4-clockmod.\n  [CPUFREQ] add to speedstep-lib additional fsb values for core processors\n  [CPUFREQ] Disable sysfs ui for p4-clockmod.\n  [CPUFREQ] p4-clockmod: reduce noise\n  [CPUFREQ] clean up speedstep-centrino and reduce cpumask_t usage\n"
    },
    {
      "commit": "10cc04f5a01041ffff068b3f9b195bfdc5290c45",
      "tree": "5c53027ce5299075759b70e1447ce811ba1afdf0",
      "parents": [
        "520c85346666d4d9a6fcaaa8450542302dc28b91",
        "9047beabb8a396f0b18de1e4a9ab920cf92054af"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:43 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:43 2009 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/ocfs2: (138 commits)\n  ocfs2: Access the right buffer_head in ocfs2_merge_rec_left.\n  ocfs2: use min_t in ocfs2_quota_read()\n  ocfs2: remove unneeded lvb casts\n  ocfs2: Add xattr support checking in init_security\n  ocfs2: alloc xattr bucket in ocfs2_xattr_set_handle\n  ocfs2: calculate and reserve credits for xattr value in mknod\n  ocfs2/xattr: fix credits calculation during index create\n  ocfs2/xattr: Always updating ctime during xattr set.\n  ocfs2/xattr: Remove extend_trans call and add its credits from the beginning\n  ocfs2/dlm: Fix race during lockres mastery\n  ocfs2/dlm: Fix race in adding/removing lockres\u0027 to/from the tracking list\n  ocfs2/dlm: Hold off sending lockres drop ref message while lockres is migrating\n  ocfs2/dlm: Clean up errors in dlm_proxy_ast_handler()\n  ocfs2/dlm: Fix a race between migrate request and exit domain\n  ocfs2: One more hamming code optimization.\n  ocfs2: Another hamming code optimization.\n  ocfs2: Don\u0027t hand-code xor in ocfs2_hamming_encode().\n  ocfs2: Enable metadata checksums.\n  ocfs2: Validate superblock with checksum and ecc.\n  ocfs2: Checksum and ECC for directory blocks.\n  ...\n"
    },
    {
      "commit": "520c85346666d4d9a6fcaaa8450542302dc28b91",
      "tree": "9c9cc9e2493b606104dd8602302ae28258ebeac0",
      "parents": [
        "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
        "4ae8978cf92a96257cd8998a49e781be83571d64"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:32:06 2009 -0800"
      },
      "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:\n  inotify: fix type errors in interfaces\n  fix breakage in reiserfs_new_inode()\n  fix the treatment of jfs special inodes\n  vfs: remove duplicate code in get_fs_type()\n  add a vfs_fsync helper\n  sys_execve and sys_uselib do not call into fsnotify\n  zero i_uid/i_gid on inode allocation\n  inode-\u003ei_op is never NULL\n  ntfs: don\u0027t NULL i_op\n  isofs check for NULL -\u003ei_op in root directory is dead code\n  affs: do not zero -\u003ei_op\n  kill suid bit only for regular files\n  vfs: lseek(fd, 0, SEEK_CUR) race condition\n"
    },
    {
      "commit": "e8c82c2e23e3527e0c9dc195e432c16784d270fa",
      "tree": "943b1359ff8d6855b0b5fd37bb0ae61f01a7da0d",
      "parents": [
        "f1b11e505463fd597ab7963df26dd1f446dcceae"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 03:05:50 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:31:12 2009 -0800"
      },
      "message": "mm lockless pagecache barrier fix\n\nAn XFS workload showed up a bug in the lockless pagecache patch. Basically it\nwould go into an \"infinite\" loop, although it would sometimes be able to break\nout of the loop! The reason is a missing compiler barrier in the \"increment\nreference count unless it was zero\" case of the lockless pagecache protocol in\nthe gang lookup functions.\n\nThis would cause the compiler to use a cached value of struct page pointer to\nretry the operation with, rather than reload it. So the page might have been\nremoved from pagecache and freed (refcount\u003d\u003d0) but the lookup would not correctly\nnotice the page is no longer in pagecache, and keep attempting to increment the\nrefcount and failing, until the page gets reallocated for something else. This\nisn\u0027t a data corruption because the condition will be detected if the page has\nbeen reallocated. However it can result in a lockup.\n\nLinus points out that ACCESS_ONCE is also required in that pointer load, even\nif it\u0027s absence is not causing a bug on our particular build. The most general\nway to solve this is just to put an rcu_dereference in radix_tree_deref_slot.\n\nAssembly of find_get_pages,\nbefore:\n.L220:\n        movq    (%rbx), %rax    #* ivtmp.1162, tmp82\n        movq    (%rax), %rdi    #, prephitmp.1149\n.L218:\n        testb   $1, %dil        #, prephitmp.1149\n        jne     .L217   #,\n        testq   %rdi, %rdi      # prephitmp.1149\n        je      .L203   #,\n        cmpq    $-1, %rdi       #, prephitmp.1149\n        je      .L217   #,\n        movl    8(%rdi), %esi   # \u003cvariable\u003e._count.counter, c\n        testl   %esi, %esi      # c\n        je      .L218   #,\n\nafter:\n.L212:\n        movq    (%rbx), %rax    #* ivtmp.1109, tmp81\n        movq    (%rax), %rdi    #, ret\n        testb   $1, %dil        #, ret\n        jne     .L211   #,\n        testq   %rdi, %rdi      # ret\n        je      .L197   #,\n        cmpq    $-1, %rdi       #, ret\n        je      .L211   #,\n        movl    8(%rdi), %esi   # \u003cvariable\u003e._count.counter, c\n        testl   %esi, %esi      # c\n        je      .L212   #,\n\n(notice the obvious infinite loop in the first example, if page-\u003ecount remains 0)\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1b11e505463fd597ab7963df26dd1f446dcceae",
      "tree": "56f234bbbee8a67cfa4f3dc42bc56bc658d01cd9",
      "parents": [
        "046c68842bce6b77509cf56e94a561029124b0ce"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Jan 05 14:04:40 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jan 05 18:28:04 2009 -0800"
      },
      "message": "i2o: Update my address\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3537d54c0c39de5738bba8d19f128478b0b96a71",
      "tree": "5ecdf9eb604ffa869bf9034928adfbcc8d4ffb3b",
      "parents": [
        "2c9a0d41e944807bf763f42e4a3526210e98c741"
      ],
      "author": {
        "name": "Ron Mercer",
        "email": "ron.mercer@qlogic.com",
        "time": "Mon Jan 05 18:19:59 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:19:59 2009 -0800"
      },
      "message": "qlge: Fix sparse warnings for tx ring indexes.\n\nWarnings:\ndrivers/net/qlge/qlge_main.c:1474:34: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1475:36: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1592:51: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1941:20: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:1941:20:    expected restricted unsigned int [usertype] tid\ndrivers/net/qlge/qlge_main.c:1941:20:    got int [signed] index\ndrivers/net/qlge/qlge_main.c:1945:24: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:1945:24:    expected restricted unsigned int [usertype] txq_idx\ndrivers/net/qlge/qlge_main.c:1945:24:    got unsigned int [unsigned] [usertype] tx_ring_idx\n\nSigned-off-by: Ron Mercer \u003cron.mercer@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "2c9a0d41e944807bf763f42e4a3526210e98c741",
      "tree": "5c770c22db6a1e1ec9ce5ac1922436317441e4d1",
      "parents": [
        "fd2df4f7439cd3e87090e067d5aec8f1336f4f0e"
      ],
      "author": {
        "name": "Ron Mercer",
        "email": "ron.mercer@qlogic.com",
        "time": "Mon Jan 05 18:19:20 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:19:20 2009 -0800"
      },
      "message": "qlge: Fix sparse warning regarding rx buffer queues.\n\nWarnings:\ndrivers/net/qlge/qlge_main.c:909:17: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:909:17:    expected unsigned int [unsigned] [usertype] addr_lo\ndrivers/net/qlge/qlge_main.c:909:17:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:911:17: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:911:17:    expected unsigned int [unsigned] [usertype] addr_hi\ndrivers/net/qlge/qlge_main.c:911:17:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:974:17: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:974:17:    expected unsigned int [unsigned] [usertype] addr_lo\ndrivers/net/qlge/qlge_main.c:974:17:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:975:17: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:975:17:    expected unsigned int [unsigned] [usertype] addr_hi\ndrivers/net/qlge/qlge_main.c:975:17:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:2132:16: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:2132:16:    expected unsigned int [unsigned] [usertype] addr_lo\ndrivers/net/qlge/qlge_main.c:2132:16:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:2133:16: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:2133:16:    expected unsigned int [unsigned] [usertype] addr_hi\ndrivers/net/qlge/qlge_main.c:2133:16:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:2212:15: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:2212:15:    expected unsigned int [unsigned] [usertype] addr_lo\ndrivers/net/qlge/qlge_main.c:2212:15:    got restricted unsigned int [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:2214:15: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:2214:15:    expected unsigned int [unsigned] [usertype] addr_hi\ndrivers/net/qlge/qlge_main.c:2214:15:    got restricted unsigned int [usertype] \u003cnoident\u003e\n\nSigned-off-by: Ron Mercer \u003cron.mercer@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "fd2df4f7439cd3e87090e067d5aec8f1336f4f0e",
      "tree": "b889d344981a9c1a97a879d89eae2a4103be9397",
      "parents": [
        "a303ce0972d04036316e85568682a2b89fe123d9"
      ],
      "author": {
        "name": "Ron Mercer",
        "email": "ron.mercer@qlogic.com",
        "time": "Mon Jan 05 18:18:45 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:18:45 2009 -0800"
      },
      "message": "qlge: Fix sparse endian warning in ql_hw_csum_setup().\n\nChanged u16 to __sum16 usage.\n\nWarnings:\ndrivers/net/qlge/qlge_main.c:1897:9: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:1897:9:    expected unsigned short [usertype] *check\ndrivers/net/qlge/qlge_main.c:1897:9:    got restricted unsigned short *\u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:1903:9: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:1903:9:    expected unsigned short [usertype] *check\ndrivers/net/qlge/qlge_main.c:1903:9:    got restricted unsigned short *\u003cnoident\u003e\ndrivers/net/qlge/qlge_main.c:1909:9: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_main.c:1909:9:    expected unsigned short [unsigned] [short] [usertype] \u003cnoident\u003e\n\nSigned-off-by: Ron Mercer \u003cron.mercer@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a303ce0972d04036316e85568682a2b89fe123d9",
      "tree": "d532177ae6549de9d6360da8eb366d3de3add588",
      "parents": [
        "8306c952a523ad2f87c101427c3ece91176b822c"
      ],
      "author": {
        "name": "Ron Mercer",
        "email": "ron.mercer@qlogic.com",
        "time": "Mon Jan 05 18:18:22 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:18:22 2009 -0800"
      },
      "message": "qlge: Fix sparse endian warning for inbound packet control block flags.\n\nChanged flags element from __le32 to 3 reserved bytes and one byte of\nflags.  Changed flags bit definitions to reflect byte width instead of\n__le32 width.\n\nWarnings:\ndrivers/net/qlge/qlge_main.c:1206:16: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1207:16: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1233:17: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1276:17: warning: restricted degrades to integer\ndrivers/net/qlge/qlge_main.c:1349:19: warning: restricted degrades to integer\n\nSigned-off-by: Ron Mercer \u003cron.mercer@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8306c952a523ad2f87c101427c3ece91176b822c",
      "tree": "a753b27960554173faa65603c70e1fa72341d415",
      "parents": [
        "0f840011f0396dcb97ca82c64fd43f6990a574dd"
      ],
      "author": {
        "name": "Ron Mercer",
        "email": "ron.mercer@qlogic.com",
        "time": "Mon Jan 05 18:17:33 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:17:33 2009 -0800"
      },
      "message": "qlge: Fix sparse warnings for byte swapping in qlge_ethool.c\n\ndrivers/net/qlge/qlge_ethtool.c:59:23: warning: cast to restricted type\ndrivers/net/qlge/qlge_ethtool.c:59:21: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_ethtool.c:59:21:    expected restricted unsigned short [usertype] irq_delay\ndrivers/net/qlge/qlge_ethtool.c:59:21:    got unsigned short [unsigned] [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_ethtool.c:61:8: warning: cast to restricted type\ndrivers/net/qlge/qlge_ethtool.c:60:21: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_ethtool.c:60:21:    expected restricted unsigned short [usertype] pkt_delay\ndrivers/net/qlge/qlge_ethtool.c:60:21:    got unsigned short [unsigned] [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_ethtool.c:82:23: warning: cast to restricted type\ndrivers/net/qlge/qlge_ethtool.c:82:21: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_ethtool.c:82:21:    expected restricted unsigned short [usertype] irq_delay\ndrivers/net/qlge/qlge_ethtool.c:82:21:    got unsigned short [unsigned] [usertype] \u003cnoident\u003e\ndrivers/net/qlge/qlge_ethtool.c:84:8: warning: cast to restricted type\ndrivers/net/qlge/qlge_ethtool.c:83:21: warning: incorrect type in assignment (different base types)\ndrivers/net/qlge/qlge_ethtool.c:83:21:    expected restricted unsigned short [usertype] pkt_delay\ndrivers/net/qlge/qlge_ethtool.c:83:21:    got unsigned short [unsigned] [usertype] \u003cnoident\u003e\n\nSigned-off-by: Ron Mercer \u003cron.mercer@qlogic.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0f840011f0396dcb97ca82c64fd43f6990a574dd",
      "tree": "364629a3d51dedfbb4e6e0641c086a464c23d616",
      "parents": [
        "6f57321422e0d359e83c978c2b03db77b967b7d5"
      ],
      "author": {
        "name": "Brice Goglin",
        "email": "brice@myri.com",
        "time": "Mon Jan 05 18:16:14 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:16:14 2009 -0800"
      },
      "message": "myri10ge: print MAC and serial number on probe failure\n\nTo help board identification and diagnosis, print the MAC\nand serial number on probe failure if they are available.\n\nSigned-off-by: Brice Goglin \u003cbrice@myri.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f57321422e0d359e83c978c2b03db77b967b7d5",
      "tree": "80d92a8fff5b5ae27ca618f34acf9d696289d6ba",
      "parents": [
        "f1d3e4dca3f8d4f55656477e83d0afe0ea7cbaed"
      ],
      "author": {
        "name": "Jarek Poplawski",
        "email": "jarkao2@gmail.com",
        "time": "Mon Jan 05 18:14:19 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:14:19 2009 -0800"
      },
      "message": "pkt_sched: cls_u32: Fix locking in u32_change()\n\nNew nodes are inserted in u32_change() under rtnl_lock() with wmb(),\nso without tcf_tree_lock() like in other classifiers (e.g. cls_fw).\nThis isn\u0027t enough without rmb() on the read side, but on the other\nhand adding such barriers doesn\u0027t give any savings, so the lock is\nadded instead.\n\nReported-by: m0sia \u003cm0sia@plotinka.ru\u003e\nSigned-off-by: Jarek Poplawski \u003cjarkao2@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "4696b64d234b84b5b70ffd49a76833aa5c49cb61",
      "tree": "c1a1a647395e1b24395dee7b34501d12bdce3e40",
      "parents": [
        "576b4d0cce9716a3a6c67ded27a638ef833b0a54"
      ],
      "author": {
        "name": "Julian Calaby",
        "email": "julian.calaby@gmail.com",
        "time": "Mon Jan 05 18:13:49 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:13:49 2009 -0800"
      },
      "message": "sparc: Fix minor SPARC32 compile error\n\nWhen CONFIG_PROC_FS is unset, include/linux/interrupt.h defines\ninit_irq_proc() as an empty function.\n\narch/sparc/kernel/irq_32.c defines this function unconditionally.\n\nFix the latter so that it only defines this function when CONFIG_PROC_FS\nis set.\n\nThis fixes the following error:\narch/sparc/kernel/irq_32.c:672: error: redefinition of \u0027init_irq_proc\u0027\ninclude/linux/interrupt.h:461: error: previous definition of\n\u0027init_irq_proc\u0027 was here\n\nThis was found using randconfig builds.\n\nSigned-off-by: Julian Calaby \u003cjulian.calaby@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "f1d3e4dca3f8d4f55656477e83d0afe0ea7cbaed",
      "tree": "1d2d2ebc94dd4b18d26f25cd062bea741f85237e",
      "parents": [
        "65dbd7c2778f1921ef1ee2a73e47a2a126fed30f"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Jan 05 18:09:02 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:09:02 2009 -0800"
      },
      "message": "iucv: fix cpu hotplug\n\nIf the iucv module is compiled in/loaded but no user is registered cpu\nhot remove doesn\u0027t work. Reason for that is that the iucv cpu hotplug\nnotifier on CPU_DOWN_PREPARE checks if the iucv_buffer_cpumask would\nbe empty after the corresponding bit would be cleared. However the bit\nwas never set since iucv wasn\u0027t enable. That causes all cpu hot unplug\noperations to fail in this scenario.\nTo fix this use iucv_path_table as an indicator wether iucv is enabled\nor not.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Ursula Braun \u003cursula.braun@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "65dbd7c2778f1921ef1ee2a73e47a2a126fed30f",
      "tree": "12b6b4517fcc202fe1246c2c87e540cf135fa2d4",
      "parents": [
        "18becbc5479f88d5adc218374ca62b8b93ec2545"
      ],
      "author": {
        "name": "Hendrik Brueckner",
        "email": "brueckner@linux.vnet.ibm.com",
        "time": "Mon Jan 05 18:08:23 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:08:23 2009 -0800"
      },
      "message": "af_iucv: Free iucv path/socket in path_pending callback\n\nFree iucv path after iucv_path_sever() calls in iucv_callback_connreq()\n(path_pending() iucv callback).\nIf iucv_path_accept() fails, free path and free/kill newly created socket.\n\nSigned-off-by: Hendrik Brueckner \u003cbrueckner@linux.vnet.ibm.com\u003e\nSigned-off-by: Ursula Braun \u003cursula.braun@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "18becbc5479f88d5adc218374ca62b8b93ec2545",
      "tree": "c99569ff4d63df5cef410152fbb83d74c683f8be",
      "parents": [
        "55cdea9ed9cf2d76993e40ed7a1fc649a14db07c"
      ],
      "author": {
        "name": "Ursula Braun",
        "email": "ursula.braun@de.ibm.com",
        "time": "Mon Jan 05 18:07:46 2009 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Jan 05 18:07:46 2009 -0800"
      },
      "message": "af_iucv: avoid left over IUCV connections from failing connects\n\nFor certain types of AFIUCV socket connect failures IUCV connections\nare left over. Add some cleanup-statements to avoid cluttered IUCV\nconnections.\n\nSigned-off-by: Ursula Braun \u003cursula.braun@de.ibm.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "55cdea9ed9cf2d76993e40ed7a1fc649a14db07c"
}
