)]}'
{
  "log": [
    {
      "commit": "a87e84b5cdfacf11af4e8a85c4bca9793658536f",
      "tree": "f8e3cb2d339d8ed0e987d55f725e501730cdc81d",
      "parents": [
        "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
        "3c394ddaa7ea4205f933fd9b481166b2669368a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:54:33 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.32\u0027 of git://linux-nfs.org/~bfields/linux: (68 commits)\n  nfsd4: nfsv4 clients should cross mountpoints\n  nfsd: revise 4.1 status documentation\n  sunrpc/cache: avoid variable over-loading in cache_defer_req\n  sunrpc/cache: use list_del_init for the list_head entries in cache_deferred_req\n  nfsd: return success for non-NFS4 nfs4_state_start\n  nfsd41: Refactor create_client()\n  nfsd41: modify nfsd4.1 backchannel to use new xprt class\n  nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n  nfsd41: Backchannel: cb_sequence callback\n  nfsd41: Backchannel: Setup sequence information\n  nfsd41: Backchannel: Server backchannel RPC wait queue\n  nfsd41: Backchannel: Add sequence arguments to callback RPC arguments\n  nfsd41: Backchannel: callback infrastructure\n  nfsd4: use common rpc_cred for all callbacks\n  nfsd4: allow nfs4 state startup to fail\n  SUNRPC: Defer the auth_gss upcall when the RPC call is asynchronous\n  nfsd4: fix null dereference creating nfsv4 callback client\n  nfsd4: fix whitespace in NFSPROC4_CLNT_CB_NULL definition\n  nfsd41: sunrpc: add new xprt class for nfsv4.1 backchannel\n  sunrpc/cache: simplify cache_fresh_locked and cache_fresh_unlocked.\n  ...\n"
    },
    {
      "commit": "7b021967c5e1463936042c8da72b550d3cabe9ac",
      "tree": "efb5c26216851a93b3db3fba55858af04c8a15c5",
      "parents": [
        "6aed62853c72e29f2c97bbac7712cb398e8c9437"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make lock_manager_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4516fc0454e7ffe2f369e80045b23c2b32155004",
      "tree": "b1068b9fbad76b5381b103fc57617373ec2ae37d",
      "parents": [
        "e9dc122166b8d863d3057a66ada04838e5548e52"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Fri Aug 14 12:57:54 2009 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Aug 21 11:27:42 2009 -0400"
      },
      "message": "sunrpc: add routine for comparing addresses\n\nlockd needs these sort of routines, as does the NFSv4 callback code.\n\nMove lockd\u0027s routines into common code and rename them so that they can\nbe used by others.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6c9dc4255108bab4ef5c177d369b99c3c23492a7",
      "tree": "1369d9d804e276c32ab157e64646888b64ca0640",
      "parents": [
        "18fc31641925867c871bc75270ce642c039188d3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 17 18:02:10 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:02:10 2009 -0700"
      },
      "message": "lockd: Update NSM state from SM_MON replies\n\nWhen rpc.statd starts up in user space at boot time, it attempts to\nwrite the latest NSM local state number into\n/proc/sys/fs/nfs/nsm_local_state.\n\nIf lockd.ko isn\u0027t loaded yet (as is the case in most configurations),\nthat file doesn\u0027t exist, thus the kernel\u0027s NSM state remains set to\nits initial value of zero during lockd operation.\n\nThis is a problem because rpc.statd and lockd use the NSM state number\nto prevent repeated lock recovery on rebooted hosts.  If lockd sends\na zero NSM state, but then a delayed SM_NOTIFY with a real NSM state\nnumber is received, there is no way for lockd or rpc.statd to\ndistinguish that stale SM_NOTIFY from an actual reboot.  Thus lock\nrecovery could be performed after the rebooted host has already\nstarted reclaiming locks, and those locks will be lost.\n\nWe could change /etc/init.d/nfslock so it always modprobes lockd.ko\nbefore starting rpc.statd.  However, if lockd.ko is ever unloaded\nand reloaded, we are back at square one, since the NSM state is not\npreserved across an unload/reload cycle.  This may happen frequently\non clients that use automounter.  A period of NFS inactivity causes\nlockd.ko to be unloaded, and the kernel loses its NSM state setting.\n\nInstead, let\u0027s use the fact that rpc.statd plants the local system\u0027s\nNSM state in every SM_MON (and SM_UNMON) reply.  lockd performs a\nsynchronous SM_MON upcall to the local rpc.statd _before_ sending its\nfirst NLM request to a new remote.  This would permit rpc.statd to\nprovide the current NSM state to lockd, even after lockd.ko had been\nunloaded and reloaded.\n\nNote that NLMPROC_LOCK arguments are constructed before the\nnsm_monitor() call, so we have to rearrange argument construction very\nslightly to make this all work out.\n\nAnd, the kernel appears to treat NSM state as a u32 (see struct\nnlm_args and nsm_res).  Make nsm_local_state a u32 as well, to ensure\nwe don\u0027t get bogus comparison results.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "77f18f5e4ebdea35ec3d92343b0ed7546dc87637",
      "tree": "dd9a97818130a8596b1833c82a625b3ed9cf9186",
      "parents": [
        "4ac35c2f794503d3acda20d98e89cf63f6e94332"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Wed Feb 11 17:16:58 2009 -0800"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Mar 18 17:30:51 2009 -0400"
      },
      "message": "nfs: replace uses of __constant_{endian}\n\nThe base versions handle constant folding now, none of these headers\nare exported to userspace, so the __ prefixed versions are not\nnecessary.\n\nSigned-off-by: Harvey Harrison \u003charvey.harrison@gmail.com\u003e\nReviewed-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "78851e1aa4c3b796d5f0bb11b445016726302b44",
      "tree": "f3ab7900494d6e98d95211e90a5bcdcee66bd13b",
      "parents": [
        "ae46141ff08f1965b17c531b571953c39ce8b9e2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Mar 10 20:33:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Mar 10 20:33:19 2009 -0400"
      },
      "message": "NLM: Shrink the IPv4-only version of nlm_cmp_addr()\n\nClean up/micro-optimatization:  Make the AF_INET-only version of\nnlm_cmp_addr() smaller.  This matches the style of\nnlm_privileged_requester(), and makes the AF_INET-only version of\nnlm_cmp_addr() nearly the same size as it was before IPv6 support.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "0cb2659b818eca99235e17c04291cfa9985c14f7",
      "tree": "48fc176e1e1e8a6f771e664799c26df1d72e9f69",
      "parents": [
        "50a737f86dbf99daf3a8dcbdf778a3be36bb2a39"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Dec 23 15:21:38 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 23 15:21:38 2008 -0500"
      },
      "message": "NLM: allow lockd requests from an unprivileged port\n\nIf the admin has specified the \"noresvport\" option for an NFS mount\npoint, the kernel\u0027s NFS client uses an unprivileged source port for\nthe main NFS transport.  The kernel\u0027s lockd client should use an\nunprivileged port in this case as well.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "26a414092353590ceaa5955bcb53f863d6ea7549",
      "tree": "d829a751e7f6dee7323039e6ea2340e78e5f9fd6",
      "parents": [
        "8c3916f4bdf9c8388bd70d0b399b3a43daf2087a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 17:15:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sat Oct 04 17:12:27 2008 -0400"
      },
      "message": "NLM: Remove \"proto\" argument from lockd_up()\n\nClean up: Now that lockd_up() starts listeners for both transports, the\n\"proto\" argument is no longer needed.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "9a38a83880c224c6a3fd973ac9ae30a043487f0f",
      "tree": "9c0f29278f2f8490e0547bf10f57ca513958caf2",
      "parents": [
        "b85e4676344fc4d7ec5e0f62c3d3712e48bbe223"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:51 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: Remove unused fields in the nlm_reboot structure\n\nThe nlm_reboot structure is used to store information provided by the\nNSM_NOTIFY procedure.  This procedure is not specified by the NLM or NSM\nprotocols, other than to say that the procedure can be used to transmit\ninformation private to a particular NLM/NSM implementation.\n\nFor Linux, the callback arguments include the name of the monitored host,\nthe new NSM state of the host, and a 16-byte private opaque.\n\nAs a clean up, remove the unused fields and the server-side XDR logic that\ndecodes them.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b85e4676344fc4d7ec5e0f62c3d3712e48bbe223",
      "tree": "a2a6c0226ea0f72536477dff2e123245a3621d9d",
      "parents": [
        "dcff09f124f71d1d4fe61eb63c79e52f488ac22e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:44 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: Add helper to sanity check incoming NOTIFY requests\n\nlockd accepts SM_NOTIFY calls only from a privileged process on the\nlocal system.  If lockd uses an AF_INET6 listener, the sender\u0027s address\n(ie the local rpc.statd) will be the IPv6 loopback address, not the\nIPv4 loopback address.\n\nMake sure the privilege test in nlmsvc_proc_sm_notify() and\nnlm4svc_proc_sm_notify() works for both AF_INET and AF_INET6 family\naddresses by refactoring the test into a helper and adding support for\nIPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "dcff09f124f71d1d4fe61eb63c79e52f488ac22e",
      "tree": "9de34b565ee957c3d80dcd9f279b3b2bb0496ba7",
      "parents": [
        "6bfbe8af4674458e6d88aef8f0136bd1b8855b11"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:36 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: change nlmclnt_grant() to take a \"struct sockaddr *\"\n\nAdjust the signature and callers of nlmclnt_grant() to pass a \"struct\nsockaddr *\" instead of a \"struct sockaddr_in *\" in order to support IPv6\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "6bfbe8af4674458e6d88aef8f0136bd1b8855b11",
      "tree": "b8305ece04cebae733d619a77c3ff8fdee55e4a2",
      "parents": [
        "d7d204403b31beb83b1aefef7bd76f5209369555"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:29 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:35 2008 -0400"
      },
      "message": "lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses\n\nFix up nlmsvc_lookup_host() to pass AF_INET6 source addresses to\nnlm_lookup_host().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "d7d204403b31beb83b1aefef7bd76f5209369555",
      "tree": "70d63b581d4987fb12cc455f741bf21a55a7a8c3",
      "parents": [
        "88541c848746442ddff45dea05ddea6b734d88b5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 03 12:50:21 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 17:02:34 2008 -0400"
      },
      "message": "lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET\n\nPass a struct sockaddr * and a length to nlmclnt_lookup_host() to\naccomodate non-AF_INET family addresses.\n\nAs a side benefit, eliminate the hostname_len argument, as the hostname\nis always NUL-terminated.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "b2b5028905226f85075a408b1118857c9aa48bb3",
      "tree": "79d4e32fe7b0f4f12282282f0b0147ca2b438171",
      "parents": [
        "af558e33bedab672f5cfd3260bce7445e353fe21"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Feb 06 13:59:23 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 16:19:19 2008 -0400"
      },
      "message": "lockd: move grace period checks to common code\n\nDo all the grace period checks in svclock.c.  This simplifies the code a\nbit, and will ease some later changes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "af558e33bedab672f5cfd3260bce7445e353fe21",
      "tree": "eb89187b6c12640a00584bd35be035ba332e4af3",
      "parents": [
        "d5b337b4877f7c4e1d761434ee04d045b0201e03"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Sep 06 12:34:25 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Oct 03 16:19:02 2008 -0400"
      },
      "message": "nfsd: common grace period control\n\nRewrite grace period code to unify management of grace period across\nlockd and nfsd.  The current code has lockd and nfsd cooperate to\ncompute a grace period which is satisfactory to them both, and then\nindividually enforce it.  This creates a slight race condition, since\nthe enforcement is not coordinated.  It\u0027s also more complicated than\nnecessary.\n\nHere instead we have lockd and nfsd each inform common code when they\nenter the grace period, and when they\u0027re ready to leave the grace\nperiod, and allow normal locking only after both of them are ready to\nleave.\n\nWe also expect the locks_start_grace()/locks_end_grace() interface here\nto be simpler to build on for future cluster/high-availability work,\nwhich may require (for example) putting individual filesystems into\ngrace, or enforcing grace periods across multiple cluster nodes.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "781b61a6f4ff94cb8c14cf598b547f5d5c490969",
      "tree": "166288be121563b77c3672b311bbbe2541de3bd3",
      "parents": [
        "7e9d7746bfd40121438b155023793796499497d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:36:01 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "lockd: Teach nlm_cmp_addr() to support AF_INET6 addresses\n\nUpdate the nlm_cmp_addr() helper to support AF_INET6 as well as AF_INET\naddresses.  New version takes two \"struct sockaddr *\" arguments instead of\n\"struct sockaddr_in *\" arguments.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "7e9d7746bfd40121438b155023793796499497d8",
      "tree": "1b2ba4e1a32d22485bcec946ef4fb6f758067a3a",
      "parents": [
        "90151e6e4d00a3150d03d52170c246734b274622"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:35:54 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "NSM: Use sockaddr_storage for sm_addr field\n\nTo store larger addresses in the nsm_handle structure, make sm_addr a\nsockaddr_storage.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "90151e6e4d00a3150d03d52170c246734b274622",
      "tree": "bb0c7b1ab2b08ca86e87a30e0da0779a14a9b94d",
      "parents": [
        "b4ed58fd34d4def88bda59f9cc566ec9fca6a096"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:35:46 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "lockd: Use sockaddr_storage for h_saddr field\n\nTo store larger addresses in the nlm_host structure, make h_saddr a\nsockaddr_storage.  And let\u0027s call it something more self-explanatory:\n\"saddr\" could easily be mistaken for \"server 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": "b4ed58fd34d4def88bda59f9cc566ec9fca6a096",
      "tree": "ce377f9ec8773a26e4a967e7d73d42e99d39b0ea",
      "parents": [
        "5344b12d4f97d4a9a62d806425977a6ff64b6baf"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 03 14:35:39 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:39 2008 -0400"
      },
      "message": "lockd: Use sockaddr_storage + length for h_addr field\n\nTo store larger addresses in the nlm_host structure, make h_addr a\nsockaddr_storage, and add an address length 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": "1b333c54a15a746ff6b04a684b0845a66daacef2",
      "tree": "d0a09595e34db6b176fbe5f59b60f0c45ee7cd85",
      "parents": [
        "c2526f42711d93f3455f92a82b5e586880fc44be"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 27 16:57:23 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 18:13:38 2008 -0400"
      },
      "message": "lockd: address-family independent printable addresses\n\nKnowing which source address is used for communicating with remote NLM\nservices can be helpful for debugging configuration problems on hosts\nwith multiple addresses.\n\nKeep the dprintk debugging here, but adapt it so it displays AF_INET6\naddresses properly.  There are also a couple of dprintk clean-ups as\nwell.\n\nAt some point we will aggregate the helpers that display presentation\nformat addresses into a single set of shared helpers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "367c8c7bd9a2882daad6c9cb607e1db8ef781ad4",
      "tree": "67fc93454ea9b3db1f6456cb6d6c255fe0c08178",
      "parents": [
        "560de0e65904db392e1c443c4bf5ee750573336b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 30 18:58:14 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 16:11:29 2008 -0400"
      },
      "message": "lockd: Pass \"struct sockaddr *\" to new failover-by-IP function\n\nPass a more generic socket address type to nlmsvc_unlock_all_by_ip() to\nallow for future support of IPv6.  Also provide additional sanity\nchecking in failover_unlock_ip() when constructing the server\u0027s IP\naddress.\n\nAs an added bonus, provide clean kerneldoc comments on related NLM\ninterfaces which were recently 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": "6cde4de80773497d8333985b135f472eda870904",
      "tree": "f6b97fe59c31dbe750b146d785276d44223b7e4c",
      "parents": [
        "8f920d5e29f86d3425a68e1c3bc264d1f6f55112"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 15 14:26:17 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 14:53:33 2008 -0400"
      },
      "message": "lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_lock\n\nnlmsvc_lock calls nlmsvc_lookup_host to find a nlm_host struct. The\ncallers of this function, however, call nlmsvc_retrieve_args or\nnlm4svc_retrieve_args, which also return a nlm_host struct.\n\nChange nlmsvc_lock to take a host arg instead of calling\nnlmsvc_lookup_host itself and change the callers to pass a pointer to\nthe nlm_host they\u0027ve already found.\n\nSince nlmsvc_testlock() now just uses the caller\u0027s reference, we no\nlonger need to get or release it.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "8f920d5e29f86d3425a68e1c3bc264d1f6f55112",
      "tree": "db3054c6d5f0a2a6b239b204171e119c69ab0217",
      "parents": [
        "b0e92aae157cbf78ede7b7dd03967b49fcb2102e"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jul 15 14:06:48 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Tue Jul 15 14:26:52 2008 -0400"
      },
      "message": "lockd: eliminate duplicate nlmsvc_lookup_host call from nlmsvc_testlock\n\nnlmsvc_testlock calls nlmsvc_lookup_host to find a nlm_host struct. The\ncallers of this functions, however, call nlmsvc_retrieve_args or\nnlm4svc_retrieve_args, which also return a nlm_host struct.\n\nChange nlmsvc_testlock to take a host arg instead of calling\nnlmsvc_lookup_host itself and change the callers to pass a pointer to\nthe nlm_host they\u0027ve already found.\n\nWe take a reference to host in the place where nlmsvc_testlock()\nprevious did a new lookup, so the reference counting is unchanged from\nbefore.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "17efa372cfe4d189705edf6cd4fbe283827a5dc7",
      "tree": "dcf10b96b079fff6edebbf451a32608ce6032663",
      "parents": [
        "4373ea84c84d8a96e99d3da99e813d3e36d1bd11"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 17 11:10:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:11 2008 -0400"
      },
      "message": "lockd: unlock lockd locks held for a certain filesystem\n\nAdd /proc/fs/nfsd/unlock_filesystem, which allows e.g.:\n\nshell\u003e echo /mnt/sfs1 \u003e /proc/fs/nfsd/unlock_filesystem\n\nso that a filesystem can be unmounted before allowing a peer nfsd to\ntake over nfs service for the filesystem.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nCc: Lon Hohberger  \u003clhh@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n\n fs/lockd/svcsubs.c          |   66 +++++++++++++++++++++++++++++++++++++++-----\n fs/nfsd/nfsctl.c            |   65 +++++++++++++++++++++++++++++++++++++++++++\n include/linux/lockd/lockd.h |    7 ++++\n 3 files changed, 131 insertions(+), 7 deletions(-)\n"
    },
    {
      "commit": "4373ea84c84d8a96e99d3da99e813d3e36d1bd11",
      "tree": "956fb92c4501cf2ed0f21a8942dfc31d4621711f",
      "parents": [
        "9d91cdcc0cce3186742f38e7352459b2087fbb86"
      ],
      "author": {
        "name": "Wendy Cheng",
        "email": "wcheng@redhat.com",
        "time": "Thu Jan 17 11:10:12 2008 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Apr 25 13:00:10 2008 -0400"
      },
      "message": "lockd: unlock lockd locks associated with a given server ip\n\nFor high-availability NFS service, we generally need to be able to drop\nfile locks held on the exported filesystem before moving clients to a\nnew server.  Currently the only way to do that is by shutting down lockd\nentirely, which is often undesireable (for example, if you want to\ncontinue exporting other filesystems).\n\nThis patch allows the administrator to release all locks held by clients\naccessing the client through a given server ip address, by echoing that\naddress to a new file, /proc/fs/nfsd/unlock_ip, as in:\n\nshell\u003e echo 10.1.1.2 \u003e /proc/fs/nfsd/unlock_ip\n\nThe expected sequence of events can be:\n1. Tear down the IP address\n2. Unexport the path\n3. Write IP to /proc/fs/nfsd/unlock_ip to unlock files\n4. Signal peer to begin take-over.\n\nFor now we only support IPv4 addresses and NFSv2/v3 (NFSv4 locks are not\naffected).\n\nAlso, if unmounting the filesystem is required, we assume at step 3 that\nclients using the given server ip are the only clients holding locks on\nthe given filesystem; otherwise, an additional patch is required to\nallow revoking all locks held by lockd on a given filesystem.\n\nSigned-off-by: S. Wendy Cheng \u003cwcheng@redhat.com\u003e\nCc: Lon Hohberger  \u003clhh@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n\n fs/lockd/svcsubs.c          |   66 +++++++++++++++++++++++++++++++++++++++-----\n fs/nfsd/nfsctl.c            |   65 +++++++++++++++++++++++++++++++++++++++++++\n include/linux/lockd/lockd.h |    7 ++++\n 3 files changed, 131 insertions(+), 7 deletions(-)\n"
    },
    {
      "commit": "5e7f37a76fa5b604949020b7317962262812b2dd",
      "tree": "ceb12f296c0d19374993ac33f306180c1f8dc23a",
      "parents": [
        "536ff0f809b0f4d56e1c41e66768d330668e0a55"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 01 18:58:49 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Apr 19 16:53:36 2008 -0400"
      },
      "message": "NLM/lockd: Add a reference counter to struct nlm_rqst\n\nWhen we replace the existing synchronous RPC calls with asynchronous calls,\nthe reference count will be needed in order to allow us to examine the\nresult of the RPC call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0490a54a00c14212f22c5948c8c13a4553d745bd",
      "tree": "eec4ea250a228c37c46255395724aa0c3390e838",
      "parents": [
        "2ca7754d4c96d68e1475690422a202ba5f0443d8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:26:08 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:01:10 2008 -0400"
      },
      "message": "lockd: introduce new function to encode private argument in SM_MON requests\n\nClean up: refactor the encoding of the opaque 16-byte private argument in\nxdr_encode_mon().  This will be updated later to support IPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f34ec991ae0f015f5cdc51ad46c3a317ffae2466",
      "tree": "9269a796bf5a89a95c81b465d86707b813a9a9b3",
      "parents": [
        "eb18860e1385bfc7f08fcb7ba362e4a5156c8324"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:18:45 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:50 2008 -0400"
      },
      "message": "lockd: bring a few function declarations up to date\n\nClean-up: replace  __inline__ and use up-to-date function declaration\nconventions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eb18860e1385bfc7f08fcb7ba362e4a5156c8324",
      "tree": "c8dff7c59d8b2d356eda454aa57c6f0e278cad6b",
      "parents": [
        "90d5b18061656993410dfd57ddb88aa5a3f34563"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Mar 14 14:18:37 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Mar 19 18:00:47 2008 -0400"
      },
      "message": "NLM: NLM protocol version numbers are u32\n\nClean up: RPC protocol version numbers are u32.  Make sure we use an\nappropriate type for NLM version numbers when calling nlm_lookup_host().\n\nEliminates a harmless mixed sign comparison in nlm_host_lookup().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48df020aa17ac95a012ff765b0086ede5996b320",
      "tree": "52aa9d1ff1e320ead499bddfe98cb05b06df1311",
      "parents": [
        "e5cff482c78a35b9f149a06aa777a1bd693864fb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Nov 01 16:56:53 2007 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Fri Feb 01 16:42:02 2008 -0500"
      },
      "message": "NLM: Fix sign of length of NLM variable length strings\n\nAccording to The Open Group\u0027s NLM specification, NLM callers are variable\nlength strings.  XDR variable length strings use an unsigned 32 bit length.\nAnd internally, negative string lengths are not meaningful for the Linux\nNLM implementation.\n\nClean up: Make nlm_lock.len and nlm_reboot.len unsigned integers.  This\nmakes the sign of NLM string lengths consistent with the sign of xdr_netobj\nlengths.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nAcked-By: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "883bb163f84e0a54b29846c61621f52db3f27393",
      "tree": "ea11b2d1ba85cbb4422ae7ff615d6d186d709af1",
      "parents": [
        "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jan 15 16:04:20 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM: Introduce an arguments structure for nlmclnt_init()\n\nClean up: pass 5 arguments to nlmclnt_init() in a structure similar to the\nnew nfs_client_initdata structure.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n"
    },
    {
      "commit": "1093a60ef34bb12010fe7ea4b780bee1c57cfbbe",
      "tree": "bc558d58ae38aab7e615883eceef1ec253c2d646",
      "parents": [
        "9289e7f91add1c09c3ec8571a2080f7507730b8d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:59 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:07 2008 -0500"
      },
      "message": "NLM/NFS: Use cached nlm_host when calling nlmclnt_proc()\n\nNow that each NFS mount point caches its own nlm_host structure, it can be\npassed to nlmclnt_proc() for each lock request.  By pinning an nlm_host for\neach mount point, we trade the overhead of looking up or creating a fresh\nnlm_host struct during every NLM procedure call for a little extra memory.\n\nWe also restrict the nlmclnt_proc symbol to limit the use of this call to\nin-tree modules.\n\nNote that nlm_lookup_host() (just removed from the client\u0027s per-request\nNLM processing) could also trigger an nlm_host garbage collection.  Now\nclient-side nlm_host garbage collection occurs only during NFS mount\nprocessing.  Since the NFS client now holds a reference on these nlm_host\nstructures, they wouldn\u0027t have been affected by garbage collection\nanyway.\n\nGiven that nlm_lookup_host() reorders the global nlm_host chain after\nevery successful lookup, and that a garbage collection could be triggered\nduring the call, we\u0027ve removed a significant amount of per-NLM-request\nCPU processing overhead.\n\nSidebar: there are only a few remaining references to the internals of\nNFS inodes in the client-side NLM code.  The only references I found are\nrelated to extracting or comparing the inode\u0027s file handle via NFS_FH().\nOne is in nlmclnt_grant(); the other is in nlmclnt_setlockargs().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52c4044d00fe703eb3fb18e0d8dfd1c196eb28be",
      "tree": "e8ff891bc68ee10ebe3d067b13ba31e2deb645bb",
      "parents": [
        "86d61d8638ddf9cdf87df26c7fa69b2804425fbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Jan 11 17:09:44 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:06 2008 -0500"
      },
      "message": "NLM: Introduce external nlm_host set-up and tear-down functions\n\nWe would like to remove the per-lock-operation nlm_lookup_host() call from\nnlmclnt_proc().\n\nThe new architecture pins an nlm_host structure to each NFS client\nsuperblock that has the \"lock\" mount option set.  The NFS client passes\nin the pinned nlm_host structure during each call to nlmclnt_proc().  NFS\nclient unmount processing \"puts\" the nlm_host so it can be garbage-\ncollected later.\n\nThis patch introduces externally callable NLM functions that handle\nmount-time nlm_host set up and tear-down.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9a8db97e7756119689c93c431e8b8324080f5625",
      "tree": "2e0ac28664b02c7e1c7a111c6e60ac059fd92ad8",
      "parents": [
        "12127498c8f5e479df15ee374a0932f5659df49e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Jul 17 04:04:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:07 2007 -0700"
      },
      "message": "knfsd: lockd: nfsd4: use same grace period for lockd and nfsd4\n\nBoth lockd and (in the nfsv4 case) nfsd enforce a \"grace period\" after reboot,\nduring which clients may reclaim locks from the previous server instance, but\nmay not acquire new locks.\n\nCurrently the lockd and nfsd enforce grace periods of different lengths.  This\nmay cause problems when we reboot a server with both v2/v3 and v4 clients.\nFor example, if the lockd grace period is shorter (as is likely the case),\nthen a v3 client might acquire a new lock that conflicts with a lock already\nheld (but not yet reclaimed) by a v4 client.\n\nThis patch calculates a lease time that lockd and nfsd can both use.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c98451bdb2f3e6d6cc1e03adad641e9497512b49",
      "tree": "e5e2aa60dd308fc5fa2b641d84798e6b93376949",
      "parents": [
        "d3bc9a1deb8964d774af8535814cb91bf8f6def0"
      ],
      "author": {
        "name": "Frank van Maarseveen",
        "email": "frankvm@frankvm.com",
        "time": "Mon Jul 09 22:25:29 2007 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:49 2007 -0400"
      },
      "message": "NLM: fix source address of callback to client\n\nUse the destination address of the original NLM request as the\nsource address in callbacks to the client.\n\nSigned-off-by: Frank van Maarseveen \u003cfrankvm@frankvm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d48c5f41000ad176df71d2d43932c6c50f938196",
      "tree": "fa513ac473e1a9cd778c35fc260db6e7e4fc3dd6",
      "parents": [
        "2e42c3e2aec6e24e58c4c601e1a33f0e9e36e314"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 17:21:26 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon May 14 19:33:46 2007 -0400"
      },
      "message": "NLM: Fix sparse warnings\n\n - fs/lockd/xdr4.c:140:27: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:141:27: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:432:28: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:433:28: warning: incorrect type in argument 2 (different\n   explicit signedness)\n - fs/lockd/xdr4.c:587:20: warning: symbol \u0027nlm_version4\u0027 was not declared.\n   Should it be static?\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2d56d3c43cc97ae48586745556f5a5b564d61582",
      "tree": "28f2edc1e69b79e94d99023041dd0358861b6956",
      "parents": [
        "0f9008ef38d5a6305d94bbdd8f20d68fc75c63b6",
        "586759f03e2e9031ac5589912a51a909ed53c30a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:34:24 2007 -0700"
      },
      "message": "Merge branch \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027server-cluster-locking-api\u0027 of git://linux-nfs.org/~bfields/linux:\n  gfs2: nfs lock support for gfs2\n  lockd: add code to handle deferred lock requests\n  lockd: always preallocate block in nlmsvc_lock()\n  lockd: handle test_lock deferrals\n  lockd: pass cookie in nlmsvc_testlock\n  lockd: handle fl_grant callbacks\n  lockd: save lock state on deferral\n  locks: add fl_grant callback for asynchronous lock return\n  nfsd4: Convert NFSv4 to new lock interface\n  locks: add lock cancel command\n  locks: allow {vfs,posix}_lock_file to return conflicting lock\n  locks: factor out generic/filesystem switch from setlock code\n  locks: factor out generic/filesystem switch from test_lock\n  locks: give posix_test_lock same interface as -\u003elock\n  locks: make -\u003elock release private data before returning in GETLK case\n  locks: create posix-to-flock helper functions\n  locks: trivial removal of unnecessary parentheses\n"
    },
    {
      "commit": "85f3f1b3f7a6197b51a2ab98d927517df730214c",
      "tree": "198465d6798b5483be2540fb6e1c0badc96d9265",
      "parents": [
        "0e4ac9d93515b27fd7635332d73eae3192ed5d4e"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Nov 28 16:27:06 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:50 2007 -0400"
      },
      "message": "lockd: pass cookie in nlmsvc_testlock\n\nChange NLM internal interface to pass more information for test lock; we\nneed this to make sure the cookie information is pushed down to the place\nwhere we do request deferral, which is handled for testlock by the\nfollowing patch.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "2b36f412ab6f2e5b64af9832b20eb7ef67d025b4",
      "tree": "b4a561cc944d25d96798f97d06bd78760db7afba",
      "parents": [
        "2beb6614f5e36c6165b704c167d82ef3e4ceaa0c"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Tue Nov 28 16:26:47 2006 -0500"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Sun May 06 20:38:50 2007 -0400"
      },
      "message": "lockd: save lock state on deferral\n\nWe need to keep some state for a pending asynchronous lock request, so this\npatch adds that state to struct nlm_block.\n\nThis also adds a function which defers the request, by calling\nrqstp-\u003erq_chandle.defer and storing the resulting deferred request in a\nnlm_block structure which we insert into lockd\u0027s global block list.  That\nnew function isn\u0027t called yet, so it\u0027s dead code until a later patch.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "511d2e8855a065c8251d0c140ebc353854f1929e",
      "tree": "d01c1327f1558ce46ee49dd1ba16da79e7720147",
      "parents": [
        "ca52fec152282ef73e5e882b847b36b1febbb1c6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Mar 29 16:47:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:09 2007 -0700"
      },
      "message": "NLM: Shrink the maximum request size of NLM4 requests\n\nNLM version 4 requests estimate the call and reply header sizes rather\nconservatively, using the very maximum size allowed in the protocol even\nthough Linux always uses only a small fraction of the allowable space.\n\nReduce the size of caller and lock arguments to conserve RPC buffer space\nwhile XDR encoding NLM4 arguments.  Add compile-time checks to ensure the\nhostname string won\u0027t overflow NLM protocol maximums.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e8c5c045d790e7018c56f1a998a2d240b732ea3c",
      "tree": "d64de6d21d715d163244a1caeedd617955eaad5e",
      "parents": [
        "905f3ed62515f233fea09dc5ad68bbcff4903520"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Wed Dec 13 00:35:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Wed Dec 13 09:05:52 2006 -0800"
      },
      "message": "[PATCH] lockd endianness annotations\n\nAnnotated, all places switched to keeping status net-endian.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "225a719f79fbc4d0cd9d9ebc5b2e3ac0e95845aa",
      "tree": "6ac303324b2832cd92a4ec9539162ac65f8d452d",
      "parents": [
        "a7a005fd12b84392becca311f2a20d5bf2a1b7af"
      ],
      "author": {
        "name": "Josef Sipek",
        "email": "jsipek@fsl.cs.sunysb.edu",
        "time": "Fri Dec 08 02:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Fri Dec 08 08:28:47 2006 -0800"
      },
      "message": "[PATCH] struct path: convert lockd\n\nSigned-off-by: Josef Sipek \u003cjsipek@fsl.cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c585646dd1d98caf0a5f2e85c794c1441df6fac1",
      "tree": "244fe4b88eeaeccc449d1c936a9e0a4be27b6e0d",
      "parents": [
        "7ddae86095794cce4364740edd8463c77654a265"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Dec 06 20:38:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.osdl.org",
        "time": "Thu Dec 07 08:39:40 2006 -0800"
      },
      "message": "[PATCH] fs/lockd/host.c: make 2 functions static\n\nMake the following needlessly global functions static:\n\n - nlm_lookup_host()\n - nsm_find()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "52921e02a4f4163a7b1f4b5dde71e1debc71de4a",
      "tree": "0202a8a4c8c78aed1826540fb33faf64a88837ce",
      "parents": [
        "7111c66e4e70588c9602035a4996c9cdc2087d2d"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Oct 19 23:28:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:40 2006 -0700"
      },
      "message": "[PATCH] lockd endianness annotations\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nAcked-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d343fce148a4eee24a907a05c4101d3268045aae",
      "tree": "b8a110f85050b2425ce85434c01c0eac0076472b",
      "parents": [
        "4481d1038f4116f3f5c307d919e6dc815a3acbb9"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Tue Oct 17 00:10:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Oct 17 08:18:46 2006 -0700"
      },
      "message": "[PATCH] knfsd: Allow lockd to drop replies as appropriate\n\nIt is possible for the -\u003efopen callback from lockd into nfsd to find that an\nanswer cannot be given straight away (an upcall is needed) and so the request\nhas to be \u0027dropped\u0027, to be retried later.  That error status is not currently\npropagated back.\n\nSo:\n  Change nlm_fopen to return nlm error codes (rather than a private\n  protocol) and define a new nlm_drop_reply code.\n  Cause nlm_drop_reply to cause the rpc request to get rpc_drop_reply\n  when this error comes back.\n  Cause svc_process to drop a request which returns a status of\n  rpc_drop_reply.\n\n[akpm@osdl.org: fix warning storm]\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89e63ef609fb0064a47281e31e38010159c32d57",
      "tree": "fcc1953b65d29caabbb4caf25498f4f160797a70",
      "parents": [
        "bc5fea4299b8bda5f73c6f79dc35d388caf8bced"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 04 02:16:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:19 2006 -0700"
      },
      "message": "[PATCH] Convert lockd to use the newer mutex instead of the older semaphore\n\nBoth the (recently introduces) nsm_sema and the older f_sema are converted\nover.\n\nCc: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "460f5cac1e24e947509b6112c99c5bc9ff687b45",
      "tree": "135d63c8401c79513dd43efdd2faeae51b87c5dc",
      "parents": [
        "39be4502cb75dc26007fe1659735b26c8e63fcc6"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:18 2006 -0700"
      },
      "message": "[PATCH] knfsd: export nsm_local_state to user space via sysctl\n\nEvery NLM call includes the client\u0027s NSM state.  Currently, the Linux client\nalways reports 0 - which seems not to cause any problems, but is not what the\nprotocol says.\n\nThis patch exposes the kernel\u0027s internal variable to user space via a sysctl,\nwhich can be set at system boot time by statd.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39be4502cb75dc26007fe1659735b26c8e63fcc6",
      "tree": "0f4c6bf14f8a975178b3192bfc9ba942da56619f",
      "parents": [
        "031d869d0e0be18cfe35526be5608225b8f0a7be"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:18 2006 -0700"
      },
      "message": "[PATCH] knfsd: match GRANTED_RES replies using cookies\n\nWhen we send a GRANTED_MSG call, we current copy the NLM cookie provided in\nthe original LOCK call - because in 1996, some broken clients seemed to rely\non this bug.  However, this means the cookies are not unique, so that when the\nclient\u0027s GRANTED_RES message comes back, we cannot simply match it based on\nthe cookie, but have to use the client\u0027s IP address in addition.  Which breaks\nwhen you have a multi-homed NFS client.\n\nThe X/Open spec explicitly mentions that clients should not expect the same\ncookie; so one may hope that any clients that were broken in 1996 have either\nbeen fixed or rendered obsolete.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "031d869d0e0be18cfe35526be5608225b8f0a7be",
      "tree": "b9b8445bec58d268feaa2efb61da5133ffcc2093",
      "parents": [
        "abd1f50094cad9dff6d68ada98b495549f52fc30"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: make nlmclnt_next_cookie SMP safe\n\nThe way we incremented the NLM cookie in nlmclnt_next_cookie was not thread\nsafe.  This patch changes the counter to an atomic_t\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "abd1f50094cad9dff6d68ada98b495549f52fc30",
      "tree": "dd738067aa90af1cb4613a7c711ee426ff5f8ae9",
      "parents": [
        "350fce8dbf43f7d441b77366851c9ce3cd28d6dc"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:16:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: optionally use hostnames for identifying peers\n\nThis patch adds the nsm_use_hostnames sysctl and module param.  If set, lockd\nwill use the client\u0027s name (as given in the NLM arguments) to find the NSM\nhandle.  This makes recovery work when the NFS peer is multi-homed, and the\nreboot notification arrives from a different IP than the original lock calls.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "350fce8dbf43f7d441b77366851c9ce3cd28d6dc",
      "tree": "a47f7e875bb9c06b93df30b84de9ca97d66740b2",
      "parents": [
        "c53c1bb94f30cecee79ca0a8e9977640338283be"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Wed Oct 04 02:16:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: simplify nlmsvc_invalidate_all\n\nAs a result of previous patches, the loop in nlmsvc_invalidate_all just sets\nh_expires for all client/hosts to 0 (though does it in a very complicated\nway).\n\nThis was possibly meant to trigger early garbage collection but half the time\n\u00270\u0027 is in the future and so it infact delays garbage collection.\n\nPre-aging the \u0027hosts\u0027 is not really needed at this point anyway so we throw\nout the loop and nlm_find_client which is no longer needed.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2af793db02d2c2f677bdb5bf8e0efdcbf9c0256",
      "tree": "2daa40a1a128905ff514df995903d8ef8d692b04",
      "parents": [
        "07ba80635117c136714084e019375aa508365375"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: make nlm_traverse_* more flexible\n\nThis patch makes nlm_traverse{locks,blocks,shares} and friends use a function\npointer rather than a \"action\" enum.\n\nThis function pointer is given two nlm_hosts (one given by the caller, the\nother taken from the lock/block/share currently visited), and is free to do\nwith them as it wants.  If it returns a non-zero value, the lockd/block/share\nis released.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "07ba80635117c136714084e019375aa508365375",
      "tree": "06160152e4b9c137669a5c833366858f72601895",
      "parents": [
        "68a2d76cea4234bc027df23085d9df4f2171f7fc"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: change nlm_file to use a hlist\n\nThis changes struct nlm_file and the nlm_files hash table to use a hlist\ninstead of the home-grown lists.\n\nThis allows us to remove f_hash which was only used to find the right hash\nchain to delete an entry from.\n\nIt also increases the size of the nlm_files hash table from 32 to 128.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68a2d76cea4234bc027df23085d9df4f2171f7fc",
      "tree": "79a595aaebb198f3692e9187d0284bc4ac18f469",
      "parents": [
        "0cea32761a2f954c6d42ca79d7d1e6b9663b1e4a"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: Change list of blocked list to list_node\n\nThis patch changes the nlm_blocked list to use a list_node instead of\nhomegrown linked list handling.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0cea32761a2f954c6d42ca79d7d1e6b9663b1e4a",
      "tree": "4e98cf7e8e4c353e9cfc58a71a16d34c521a46a3",
      "parents": [
        "9502c52259f7038b6c1e31532e22884716a56b1a"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: make the hash chains use a hlist_node\n\nGet rid of the home-grown singly linked lists for the nlm_host hash table.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9502c52259f7038b6c1e31532e22884716a56b1a",
      "tree": "234b6eef6ed6d58038d8433216e8549c9e23028e",
      "parents": [
        "5c8dd29ca7fc7483690cef4306549742d534f2a2"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: make the nsm upcalls use the nsm_handle\n\nThis converts the statd upcalls to use the nsm_handle\n\nThis means that we only register each host once with statd, rather than\nregistering each host/vers/protocol triple.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c8dd29ca7fc7483690cef4306549742d534f2a2",
      "tree": "edf51e354535448ea6b57a59358d9f28c556684c",
      "parents": [
        "f0737a39a64a9df32bb045c54e1cdf6cecdcbdd7"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: Make nlm_host_rebooted use the nsm_handle\n\nThis patch makes the SM_NOTIFY handling understand and use the nsm_handle.\n\nTo make it a bit clear what is happening:\n\n    nlmclent_prepare_reclaim and nlmclnt_finish_reclaim\n    get open-coded into \u0027reclaimer\u0027\n\nThe result is tidied up.\n\nThen some of that functionality is moved out into nlm_host_rebooted (which\ncalls nlmclnt_recovery which starts a thread which runs reclaimer).\n\nAlso host_rebooted now finds an nsm_handle rather than a host, then then\niterates over all hosts and deals with each host that shares that nsm_handle.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8dead0dbd478f35fd943f3719591e5af1ac0950d",
      "tree": "05ad7dd248263cbeecc4f3d0b4cbb3ec06c65626",
      "parents": [
        "db4e4c9a9e741ee812e1febf5e386d6a24218a71"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:16 2006 -0700"
      },
      "message": "[PATCH] knfsd: lockd: introduce nsm_handle\n\nThis patch introduces the nsm_handle, which is shared by all nlm_host objects\nreferring to the same client.\n\nWith this patch applied, all nlm_hosts from the same address will share the\nsame nsm_handle.  A future patch will add sharing by name.\n\nNote: this patch changes h_name so that it is no longer guaranteed to be an IP\naddress of the host.  When the host represents an NFS server, h_name will be\nthe name passed in the mount call.  When the host represents a client, h_name\nwill be the name presented in the lock request received from the client.  A\nh_name is only used for printing informational messages, this change should\nnot be significant.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "db4e4c9a9e741ee812e1febf5e386d6a24218a71",
      "tree": "92e59fba30edbf5e10908eb2952928a5e2a29adf",
      "parents": [
        "cf712c24d72341effcfd28330b83b49f77cb627b"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:16 2006 -0700"
      },
      "message": "[PATCH] knfsd: when looking up a lockd host, pass hostname \u0026 length\n\nThis patch adds the peer\u0027s hostname (and name length) to all calls to\nnlm*_lookup_host functions.  A subsequent patch will make use of these (is\nrequested by a sysctl).\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cf712c24d72341effcfd28330b83b49f77cb627b",
      "tree": "88fcb932f3c85d83601e45473bee2c99a22ba9c2",
      "parents": [
        "977faf392fc898407554bbe7338d57b29e3660cf"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "okir@suse.de",
        "time": "Wed Oct 04 02:15:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 04 07:55:16 2006 -0700"
      },
      "message": "[PATCH] knfsd: consolidate common code for statd-\u003elockd notification\n\nCommon code from nlm4svc_proc_sm_notify and nlmsvc_proc_sm_notify is moved\ninto a new nlm_host_rebooted.\n\nThis is in preparation of a patch that will change the reboot notification\nhandling entirely.\n\nSigned-off-by: Olaf Kirch \u003cokir@suse.de\u003e\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f30c2269544bffc7bf1b0d7c0abe5be1be83b8cb",
      "tree": "2f6140d8a555af6a133690ed6b42599e78a43c54",
      "parents": [
        "670e9f34ee3c7e052514c85014d2fdd99b672cdc"
      ],
      "author": {
        "name": "Uwe Zeisberger",
        "email": "Uwe_Zeisberger@digi.com",
        "time": "Tue Oct 03 23:01:26 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Oct 03 23:01:26 2006 +0200"
      },
      "message": "fix file specification in comments\n\nMany files include the filename at the beginning, serveral used a wrong one.\n\nSigned-off-by: Uwe Zeisberger \u003cUwe_Zeisberger@digi.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "e9ff3990f08e9a0c2839cc22808b01732ea5b3e4",
      "tree": "c638a7b89f0c5e8adc410316d06ca1de8b8dabee",
      "parents": [
        "0bdd7aab7f0ecd5d337910816aa058c18398628e"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Mon Oct 02 02:18:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:21 2006 -0700"
      },
      "message": "[PATCH] namespaces: utsname: switch to using uts namespaces\n\nReplace references to system_utsname to the per-process uts namespace\nwhere appropriate.  This includes things like uname.\n\nChanges: Per Eric Biederman\u0027s comments, use the per-process uts namespace\n\tfor ELF_PLATFORM, sunrpc, and parts of net/ipv4/ipconfig.c\n\n[jdike@addtoit.com: UML fix]\n[clg@fr.ibm.com: cleanup]\n[akpm@osdl.org: build fix]\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@openvz.org\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Andrey Savochkin \u003csaw@sw.ru\u003e\nSigned-off-by: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24e36663c375df577d2dcae437713481ffd6850c",
      "tree": "dd738e582b663c433eef3a53eb593a518439a285",
      "parents": [
        "bc591ccff27e6a85d3a0d6fcb16cfadcc45267a8"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Mon Oct 02 02:17:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 02 07:57:17 2006 -0700"
      },
      "message": "[PATCH] knfsd: be more selective in which sockets lockd listens on\n\nCurrently lockd listens on UDP always, and TCP if CONFIG_NFSD_TCP is set.\n\nHowever as lockd performs services of the client as well, this is a problem.\nIf CONFIG_NfSD_TCP is not set, and a tcp mount is used, the server will not be\nable to call back to lockd.\n\nSo:\n - add an option to lockd_up saying which protocol is needed\n - Always open sockets for which an explicit port was given, otherwise\n   only open a socket of the type required\n - Change nfsd to do one lockd_up per socket rather than one per thread.\n\nThis\n - removes the dependancy on CONFIG_NFSD_TCP\n - means that lockd may open sockets other than at startup\n - means that lockd will *not* listen on UDP if the only\n   mounts are TCP mount (and nfsd hasn\u0027t started).\n\nThe latter is the only one that concerns me at all - I don\u0027t know if this\nmight be a problem with some servers.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f3d43c769d14b7065da7f62ec468b1fcb8cd6e06",
      "tree": "bcecb5319c7395bec95a0ebbb730b3c293d7cceb",
      "parents": [
        "e4e20512cfe0bacec0764b4925889d1fa94644f9"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu Aug 03 15:07:47 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 03 16:56:02 2006 -0400"
      },
      "message": "NLM/lockd: remove b_done\n\nWe never actually set the b_done field any more; it\u0027s always zero.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n(cherry picked from af8412d4283ef91356e65e0ed9b025b376aebded commit)\n"
    },
    {
      "commit": "70ac4385a13f78bc478f26d317511893741b05bd",
      "tree": "dafc7f3018295fc4ee00339889e4f35d5b9d7743",
      "parents": [
        "d59bf96cdde5b874a57bfd1425faa45da915d0b7",
        "077e98945db7e54a9865b5f29a1f02f531eca414"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 20:46:21 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 20 20:46:21 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tinclude/linux/nfs_fs.h\n\nFixed up conflict with kernel header updates.\n"
    },
    {
      "commit": "28df955a2ad484d602314b30183ea8496a9aa34a",
      "tree": "c62632b2a0a49df114283f10764244c1b1b5f506",
      "parents": [
        "5046791417dcac1ba126b77b8062af15a2f0b8e1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:27 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:27 2006 -0400"
      },
      "message": "NLM: Fix reclaim races\n\nCurrently it is possible for a task to remove its locks at the same time as\nthe NLM recovery thread is trying to recover them. This quickly leads to an\nOops.\nProtect the locks using an rw semaphore while they are being recovered.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5046791417dcac1ba126b77b8062af15a2f0b8e1",
      "tree": "a59f8eecd3e089046859cd4489c550df7b6b1ead",
      "parents": [
        "3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:24 2006 -0400"
      },
      "message": "NLM: sem to mutex conversion\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3134cbec5e172c3a86e2c3ef4af34b6cfd380bfa",
      "tree": "fb72cf27eb4ede283503f7b615437288c62b858d",
      "parents": [
        "81039f1f204a0fd2952112a240284e114f1a25e6"
      ],
      "author": {
        "name": "Marc Eshel",
        "email": "eshel@almaden.ibm.com",
        "time": "Fri Jun 09 09:40:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:40:20 2006 -0400"
      },
      "message": "locks.c: add the fl_owner to nlm_compare_locks\n\nAdd the fl_owner to NLM compare locks. Since two different client can\npresent the same pid to the server it is not enough to distinguish locks\nfrom different clients. The fl_owner field is a pointer to the struct\nnlm_host which is unique for each client.\n\nSigned-off-by: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62c4f0a2d5a188f73a94f2cb8ea0dba3e7cf0a7f",
      "tree": "e85ca2d0dd43f90dccf758338764c3caa55f333f",
      "parents": [
        "089f26d5e31b7bf42a9a8fefec08b30cd27f4b0e"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Wed Apr 26 12:56:16 2006 +0100"
      },
      "message": "Don\u0027t include linux/config.h from anywhere else in include/\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\n"
    },
    {
      "commit": "5f12191bc000ea31970339a5f54c11087506711c",
      "tree": "073d24a7ccd22ddf9a3f16b488ef1d2f989842b9",
      "parents": [
        "f3ee439f43381e45b191cf721b4a51d41f33301f"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 23:24:25 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 23:24:25 2006 -0500"
      },
      "message": "LOCKD: Make nlmsvc_traverse_shares return void\n\nThe nlmsvc_traverse_shares return value is always zero, hence useless.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3ee439f43381e45b191cf721b4a51d41f33301f",
      "tree": "1ac11992c5ec5669c0d6ed68a9881dd51a01220f",
      "parents": [
        "eaa82edf20d738a7ae31f4b0a5f72f64c14a58df"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 23:24:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 23:24:13 2006 -0500"
      },
      "message": "LOCKD: nlmsvc_traverse_blocks return is unused\n\nNote that we never return non-zero.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d47166244860eb5dfdb12ee4703968beef8a0db2",
      "tree": "423a78e1aefc84b13800e4e257bee30ac4bbcb75",
      "parents": [
        "92737230dd3f1478033819d4bc20339f8da852da"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "message": "lockd: Add helper for *_RES callbacks\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "92737230dd3f1478033819d4bc20339f8da852da",
      "tree": "27bc7804a077a29b7614c698bb02632dc4ce228e",
      "parents": [
        "e4cd038a45a46ffbe06a1a72f3f15246e5b041ca"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:45 2006 -0500"
      },
      "message": "NLM: Add nlmclnt_release_call\n\nAdd a helper function to simplify the freeing of NLM client requests.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3a649b884637c4fdff50a6beebc3dc0e6082e048",
      "tree": "042455741f079fdbd4d33cd7da61c1c9e68db477",
      "parents": [
        "d72b7a6b26b9009b7a05117fe2e04b3a73ae4a5c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "message": "NLM: Simplify client locks\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "26bcbf965f857c710adafd16cf424f043006b5dd",
      "tree": "fa3c1e4ba07ab3d1e4e61b27c7579c57fd2d5c65",
      "parents": [
        "04266473ecf5cdca242201d9f1ed890afe070fb6"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:40 2006 -0500"
      },
      "message": "lockd: stop abusing file_lock_list\n\nCurrently lockd directly access the file_lock_list from fs/locks.c.\nIt does so to mark locks granted or reclaimable.  This is very\nsuboptimal, because a) lockd needs to poke into locks.c internals, and\nb) it needs to iterate over all locks in the system for marking locks\ngranted or reclaimable.\n\nThis patch adds lists for granted and reclaimable locks to the nlm_host\nstructure instead, and adds locks to those.\n\nnlmclnt_lock:\n\tnow adds the lock to h_granted instead of setting the\n\tNFS_LCK_GRANTED, still O(1)\n\nnlmclnt_mark_reclaim:\n\tgoes away completely, replaced by a list_splice_init.\n\tComplexity reduced from O(locks in the system) to O(1)\n\nreclaimer:\n\titerates over h_reclaim now, complexity reduced from\n\tO(locks in the system) to O(locks per nlm_host)\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5e1abf8cb713a0b94f5a400c7b9b797990cd9dec",
      "tree": "717a5eb95c4615855edc5f66268154cbe4118326",
      "parents": [
        "6849c0cab69f5d1a0fc7b05fa5bfb3dec53f86df"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "message": "lockd: Clean up of the server-side GRANTED code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6849c0cab69f5d1a0fc7b05fa5bfb3dec53f86df",
      "tree": "8bf595be663cc641b000846737c3ba1b6419eb6a",
      "parents": [
        "09c7938c5640a6f22bef074ca6b803dccfdb93e3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:39 2006 -0500"
      },
      "message": "lockd: Add refcounting to struct nlm_block\n\nOtherwise, the block may disappear from underneath us when in\nnlmsvc_retry_blocked.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7bab377fcb495ee2e5a1cd69d235f8d84c76e3af",
      "tree": "67f03fbc543632ccf71075af250635201b43801b",
      "parents": [
        "36943fa4b2701b9ef2d60084c85ecbe634aec252"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "message": "lockd: Don\u0027t expose the process pid to the NLM server\n\nInstead we use the nlm_lockowner-\u003epid.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5ac5f9d1ce8492163dbde5d357dc5d03becf7e36",
      "tree": "3ce7f36c074e37dd565b91490582c4a4902f2b18",
      "parents": [
        "7c8903f6373f9abecf060bad53ca36bc4ac037f2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Feb 14 13:53:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:34 2006 -0800"
      },
      "message": "[PATCH] NLM: Fix the NLM_GRANTED callback checks\n\nIf 2 threads attached to the same process are blocking on different locks on\ndifferent files (maybe even on different servers) but have the same lock\narguments (i.e.  same offset+length - actually quite common, since most\nprocesses try to lock the entire file) then the first GRANTED call that wakes\none up will also wake the other.\n\nCurrently when the NLM_GRANTED callback comes in, lockd walks the list of\nblocked locks in search of a match to the lock that the NLM server has\ngranted.  Although it checks the lock pid, start and end, it fails to check\nthe filehandle and the server address.\n\nBy checking the filehandle and server IP address, we ensure that this only\nhappens if the locks truly are referencing the same file.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aaaa99423b4b1f9cfd33ea5643d9274c25f62491",
      "tree": "dba6fb715156d9bc8fdf0ff57d9151e67fc1322c",
      "parents": [
        "16fb24252a8170799e7adf14d8fc31b817fcaf53"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:18:25 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:52:23 2006 -0500"
      },
      "message": "NLM: Ensure that nlmclnt_cancel_callback() doesn\u0027t loop forever\n\n If the server returns NLM_LCK_DENIED_NOLOCKS, we currently retry the\n entire NLM_CANCEL request. This may end up looping forever unless the\n server changes its mind (why would it do that, though?).\n\n Ensure that we limit the number of retries (to 3).\n\n See bug# 5957 in bugzilla.kernel.org.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "16fb24252a8170799e7adf14d8fc31b817fcaf53"
}
