)]}'
{
  "log": [
    {
      "commit": "75659ca0c10992dcb39258518368a0f6f56e935d",
      "tree": "5d014ceb2f10158061a23d0d976f9a613d85e659",
      "parents": [
        "fbdde7bd274d74729954190f99afcb1e3d9bbfba",
        "2dfe485a2c8afa54cb069fcf48476f6c90ea3fdf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 01 11:45:47 2008 +1100"
      },
      "message": "Merge branch \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc\n\n* \u0027task_killable\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: (22 commits)\n  Remove commented-out code copied from NFS\n  NFS: Switch from intr mount option to TASK_KILLABLE\n  Add wait_for_completion_killable\n  Add wait_event_killable\n  Add schedule_timeout_killable\n  Use mutex_lock_killable in vfs_readdir\n  Add mutex_lock_killable\n  Use lock_page_killable\n  Add lock_page_killable\n  Add fatal_signal_pending\n  Add TASK_WAKEKILL\n  exit: Use task_is_*\n  signal: Use task_is_*\n  sched: Use task_contributes_to_load, TASK_ALL and TASK_NORMAL\n  ptrace: Use task_is_*\n  power: Use task_is_*\n  wait: Use TASK_NORMAL\n  proc/base.c: Use task_is_*\n  proc/array.c: Use TASK_REPORT\n  perfmon: Use task_is_*\n  ...\n\nFixed up conflicts in NFS/sunrpc manually..\n"
    },
    {
      "commit": "fc6014771bde8a215a9a4ea24b45f76afeb3c922",
      "tree": "60d34b3f1fa44c42a7fd18867531dc915007dfa0",
      "parents": [
        "3d1c550874bcaf0d9b7fb66f601caed109074f4b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jan 16 16:38:10 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:06:11 2008 -0500"
      },
      "message": "NFS: Address memory leaks in the NFS client mount option parser\n\nDavid Howells noticed that repeating the same mount option twice during an\nNFS mount request can result in orphaned memory in certain cases.\n\nOnly the client_address and mount_server.hostname strings are initialized\nin the mount parsing loop, so those appear to be the only two pointers that\nmight be written over by repeating a mount option.  The strings in the\nnfs_server section of the nfs_parsed_mount_data structure are set only once\nafter the options are parsed, thus these are not susceptible to being\noverwritten.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "331702337f2b2e7cef40366ee207a25604df4671",
      "tree": "72b2a1942cc7e7d0b08a119f10fb2a299f550550",
      "parents": [
        "7a3e3e18e40848b6f01d44407ce86b91b8535fbd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Dec 20 16:03:59 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:59 2008 -0500"
      },
      "message": "NFS: Support per-mountpoint timeout parameters.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3c7c7e4812e40e50a9ce9d687432ab5515cb3f2f",
      "tree": "f6c5a8d7c2e18525ca50cd08b356b7cd1ec4b764",
      "parents": [
        "4c5680177012a2b5c0f3fdf58f4375dd84a1da67"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:35 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:57 2008 -0500"
      },
      "message": "NFS: Pull covers off IPv6 address parsing\n\nNow that the needed IPv6 infrastructure is in place, allow the NFS client\u0027s\nIP address parser to generate AF_INET6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c5680177012a2b5c0f3fdf58f4375dd84a1da67",
      "tree": "d3d9e599291b4f9b738d02c3913b13541b100487",
      "parents": [
        "9412b92772c1d80ea8284583b6aad0260e13515f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:28 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:57 2008 -0500"
      },
      "message": "NFS: Support non-IPv4 addresses in nfs_parsed_mount_data\n\nReplace the nfs_server and mount_server address fields in the\nnfs_parsed_mount_data structure with a \"struct sockaddr_storage\"\ninstead of a \"struct sockaddr_in\".\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9412b92772c1d80ea8284583b6aad0260e13515f",
      "tree": "9c2032bd41d9c1e9ade36dab4ec8e4e208d96a4e",
      "parents": [
        "338320345b40eb7c63592f40d25cbd58ccf99548"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:21 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:56 2008 -0500"
      },
      "message": "NFS: Refactor mount option address parsing into separate function\n\nRefactor the logic to parse incoming text-based IP addresses.  Use the\nin4_pton() function instead of the older in_aton(), following the lead\nof the in-kernel CIFS client.\n\nLater we\u0027ll add IPv6 address parsing using the matching in6_pton()\nfunction.  For now we can\u0027t allow IPv6 address parsing: we must expand\nthe size of the address storage fields in the nfs_parsed_mount_options\nstruct before we can parse and store IPv6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "338320345b40eb7c63592f40d25cbd58ccf99548",
      "tree": "5e0b74a1231347a8fbcbd1d655983717a54f4db7",
      "parents": [
        "6677d09513e35ac2f38d3a8c8a26fbd7bbcef192"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:59:13 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:56 2008 -0500"
      },
      "message": "NFS: Remove the NIPQUAD from nfs_try_mount\n\nIn the name of address family compatibility, we can\u0027t have the NIP_FMT and\nNIPQUAD macros in nfs_try_mount().  Instead, we can make use of an unused\nmount option to display the mount server\u0027s hostname.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0d0f0c192df0282600c6d11c8cc252e7e7a80afc",
      "tree": "06b3e96d326d243c266f9e1ae3ed3798080ab904",
      "parents": [
        "04dcd6e3aceedff9fcc96ce3014688d5b642d627"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:58:00 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:54 2008 -0500"
      },
      "message": "NFS: Set default port for NFSv4, with support for AF_INET6\n\nCreate a helper function to set the default NFS port for NFSv4 mount\npoints.  The helper supports both AF_INET and AF_INET6 family addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "04dcd6e3aceedff9fcc96ce3014688d5b642d627",
      "tree": "814b5d9eab6f7c6600efc4d6b1553f5d346afd26",
      "parents": [
        "cdcd7f9abc8c95524376835fbe8e11c5f7bf588e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:53 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:53 2008 -0500"
      },
      "message": "NFS: Make setting a port number agostic\n\nWe\u0027ll need to set the port number of an AF_INET or AF_INET6 address in\nseveral places in fs/nfs/super.c, so introduce a helper that can manage\nthis for us.  We put this helper to immediate use.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cdcd7f9abc8c95524376835fbe8e11c5f7bf588e",
      "tree": "574eb3c74a70e7b872d971b262ca1f13abce2002",
      "parents": [
        "fd00a8ff8e37815c9df49f5cf09786e441e1396b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:45 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:53 2008 -0500"
      },
      "message": "NFS: Verify IPv6 addresses properly\n\nAdd support to nfs_verify_server_address for recognizing AF_INET6\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fd00a8ff8e37815c9df49f5cf09786e441e1396b",
      "tree": "b6e4caf750834591c0991f9aa55b26f1f02b530d",
      "parents": [
        "3f43c6667acb4e02962b2829a4d4ebb6b6e6f70e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:38 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:53 2008 -0500"
      },
      "message": "NFS: Add support for AF_INET6 addresses in nfs_compare_super()\n\nRefactor nfs_compare_super() and add AF_INET6 support.\n\nReplace the generic memcmp() to document explicitly what parts of the\naddresses must match in this check, and make the comparison independent\nof the lengths of both addresses.\n\nA side benefit is both tests are more computationally efficient than a\nmemcmp().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5d8515caeb99940f5ed56d22a03aba20bbe7fdcb",
      "tree": "b17ec1fc7bf34a73f65bf8c4b9f837beb54a64f9",
      "parents": [
        "d4d3c507493afd3c9d19fbe9762f44e790909dbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Dec 10 14:57:16 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:52 2008 -0500"
      },
      "message": "NFS: eliminate NIPQUAD(clp-\u003ecl_addr.sin_addr)\n\nTo ensure the NFS client displays IPv6 addresses properly, replace\naddress family-specific NIPQUAD() invocations with a call to the RPC\nclient to get a formatted string representing the remote peer\u0027s\naddress.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40c553193df41920de659f0446e5d214c862e827",
      "tree": "4ee62a79fae0ebba26d119a1aae89bfd1a552c10",
      "parents": [
        "c81468a1a766921f11ae44e8a99816ac8dc7b015"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 14 14:56:07 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:49 2008 -0500"
      },
      "message": "NFS: Remove the redundant nfs_client-\u003ecl_nfsversion\n\nWe can get the same information from the rpc_ops structure instead.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6a0ed1de8ecee0cde21ea667891a03f6c84ecd66",
      "tree": "898a769a98459e55d1ccd957c09d8cc3f0311833",
      "parents": [
        "e887cbcf911b2d16742832b38411559273ce5d77"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:40 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:46 2008 -0500"
      },
      "message": "NFS: Clean up: copy hostname with kstrndup during mount processing\n\nClean up: mount option parsing uses kstrndup in several places, rather than\nusing kzalloc.  Replace the few remaining uses of kzalloc with kstrndup,\nfor consistency.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e887cbcf911b2d16742832b38411559273ce5d77",
      "tree": "9a5bf1afb685ada914e441cedcc7285cccecd86b",
      "parents": [
        "ad879cef8554e20f9b5ca356c878712eb671228c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:29 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:46 2008 -0500"
      },
      "message": "NFS: Remove support for the \u0027mountprog\u0027 option\n\nRemove the mount option that allows users to specify an alternate mountd\nprogram number.  The client hasn\u0027t support setting an alternate mountd\nprogram number for a very long time.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ad879cef8554e20f9b5ca356c878712eb671228c",
      "tree": "a4ced497cfe4223ec84a7bcf292931c9b240ffdb",
      "parents": [
        "0eb2574121ef0ffbebe5335c66c227d1b987fa25"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:24 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:45 2008 -0500"
      },
      "message": "NFS: Remove support for the \u0027nfsprog\u0027 option\n\nRemove the mount option that allows users to specify an alternate NFS\nprogram number.  The client hasn\u0027t support setting an alternate NFS\nprogram number for a very long time.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0eb2574121ef0ffbebe5335c66c227d1b987fa25",
      "tree": "ff60c92740377b50e27a879b4155394dcd32844d",
      "parents": [
        "28c494c5c8d425e15b7b82571e4df6d6bc34594d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Oct 26 13:32:19 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:45 2008 -0500"
      },
      "message": "NFS: Ensure that NFS version 4 mounts use NFS_PORT if nfsport wasn\u0027t set\n\nText-based mount option parsing introduced a minor regression in the\nbehavior of NFS version 4 mounts.  NFS version 4 is not supposed to require\na running rpcbind service on the server in order for a mount to succeed.\n\nIn other words, if the mount options don\u0027t specify a port number, the port\nnumber is supposed to default to 2049.  For earlier versions of NFS, the\ndefault port number was zero in order to cause the RPC client to autobind\nto the server\u0027s NFS service.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ef818a28fac9bd214e676986d8301db0582b92a9",
      "tree": "b1825d1ecdfa6b35951a61f6bc54363236c12cd0",
      "parents": [
        "2f74c0a05612b9c2014b5b67833dba9b9f523948"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Thu Nov 08 04:05:04 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 30 02:05:24 2008 -0500"
      },
      "message": "NFS: Stop sillyname renames and unmounts from racing\n\nAdded an active/deactive mechanism to the nfs_server structure\nallowing async operations to hold off umount until the\noperations are done.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e9cc6c234bfe414ef36f484e3ad8be621854c440",
      "tree": "8f1b6bf16c9f6b340fa398d39f55bcc51be4f05e",
      "parents": [
        "b8c9a18712f7b617fda66d878ce3759c9e575ba0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jan 02 13:28:57 2008 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jan 03 09:37:11 2008 -0500"
      },
      "message": "NFS: Fix a possible Oops in fs/nfs/super.c\n\nSigh... commit 4584f520e1f773082ef44ff4f8969a5d992b16ec (NFS: Fix NFS\nmountpoint crossing...) had a slight flaw: server can be NULL if sget()\nreturned an existing superblock.\n\nFix the fix by dereferencing s-\u003es_fs_info.\n\nThanks to Coverity/Adrian Bunk and Frank Filz for spotting the bug.\n(See http://bugzilla.kernel.org/show_bug.cgi?id\u003d9647)\n\nAlso add in the same namespace Oops fix for NFSv4 in both the mountpoint\ncrossing case, and the referral case.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4584f520e1f773082ef44ff4f8969a5d992b16ec",
      "tree": "29621145a58f6073bdac2e42d38271a550b0d679",
      "parents": [
        "75b8c133267053c9986a7c8db5131f0e7349e806"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 11 19:01:45 2007 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 11 19:01:45 2007 -0500"
      },
      "message": "NFS: Fix NFS mountpoint crossing...\n\nThe check that was added to nfs_xdev_get_sb() to work around broken\nservers, works fine for NFSv2, but causes mountpoint crossing on NFSv3 to\nalways return ESTALE.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "150030b78a454ba50d5e267b0dcf01b162809192",
      "tree": "4de766e7abbfd73a052f14f8efd3a26eb7b59d87",
      "parents": [
        "009e577e079656d51d0fe9b15e61e41b00816c29"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Dec 06 16:24:39 2007 -0500"
      },
      "committer": {
        "name": "Matthew Wilcox",
        "email": "willy@linux.intel.com",
        "time": "Thu Dec 06 17:40:25 2007 -0500"
      },
      "message": "NFS: Switch from intr mount option to TASK_KILLABLE\n\nBy using the TASK_KILLABLE infrastructure, we can get rid of the \u0027intr\u0027\nmount option.  We have to use _killable everywhere instead of _interruptible\nas we get rid of rpc_clnt_sigmask/sigunmask.\n\nSigned-off-by: Liam R. Howlett \u003chowlett@gmail.com\u003e\nSigned-off-by: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\n"
    },
    {
      "commit": "f16c960332b125491178fc2da7ea7893b0d65d05",
      "tree": "e2f65c7b9b15e006e42ca4c6366c6d887e9bacad",
      "parents": [
        "cfcb43ff7ce28f347a39e1a7519e01850b588718"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@arm.linux.org.uk",
        "time": "Fri Nov 16 22:13:24 2007 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Nov 26 16:24:22 2007 -0500"
      },
      "message": "NFS: mount failure causes bad page state\n\nWhile testing a kernel based upon ecd744eec3aa8bbc949ec04ed3fbf7ecb2958a0e\n(with wrong boot arguments), I got the following bad page state entry while\nNFS was trying to mount it\u0027s rootfs:\n\nIP-Config: Complete:\n      device\u003deth0, addr\u003d192.168.1.101, mask\u003d255.255.255.0, gw\u003d255.255.255.255,\n     host\u003d192.168.1.101, domain\u003d, nis-domain\u003d(none),\n     bootserver\u003d192.168.1.100, rootserver\u003d192.168.1.100, rootpath\u003d\nLooking up port of RPC 100003/2 on 192.168.1.100\nrpcbind: server 192.168.1.100 not responding, timed out\nRoot-NFS: Unable to get nfsd port number from server, using default\nLooking up port of RPC 100005/1 on 192.168.1.100\nrpcbind: server 192.168.1.100 not responding, timed out\nRoot-NFS: Unable to get mountd port number from server, using default\nmount: server 192.168.1.100 not responding, timed out\nRoot-NFS: Server returned error -5 while mounting /nfs/rootfs/\nVFS: Unable to mount root fs via NFS, trying floppy.\nBad page state in process \u0027swapper\u0027\npage:c02b1260 flags:0x00000400 mapping:00000000 mapcount:0 count:0\nTrying to fix it up, but a reboot is needed\nBacktrace:\n[\u003cc0023e34\u003e] (dump_stack+0x0/0x14) from [\u003cc0062570\u003e] (bad_page+0x70/0xac)\n[\u003cc0062500\u003e] (bad_page+0x0/0xac) from [\u003cc0064914\u003e] (free_hot_cold_page+0x80/0x178)\n[\u003cc0064894\u003e] (free_hot_cold_page+0x0/0x178) from [\u003cc0064a74\u003e] (free_hot_page+0x14/0x18)\n[\u003cc0064a60\u003e] (free_hot_page+0x0/0x18) from [\u003cc0067078\u003e] (put_page+0xf8/0x154)\n[\u003cc0066f80\u003e] (put_page+0x0/0x154) from [\u003cc007dbc8\u003e] (kfree+0xc8/0xd0)\n[\u003cc007db00\u003e] (kfree+0x0/0xd0) from [\u003cc00cbb54\u003e] (nfs_get_sb+0x230/0x710)\n[\u003cc00cb924\u003e] (nfs_get_sb+0x0/0x710) from [\u003cc0084334\u003e] (vfs_kern_mount+0x58/0xac)[\u003cc00842dc\u003e] (vfs_kern_mount+0x0/0xac) from [\u003cc00843c0\u003e] (do_kern_mount+0x38/0xf4)\n[\u003cc0084388\u003e] (do_kern_mount+0x0/0xf4) from [\u003cc0099c7c\u003e] (do_mount+0x1e8/0x614)\n...\n\nThis seems to be caused by use of an uninitialised structure due to NULL\noptions being passed to nfs_validate_mount_data().  Ensure that the\nparsed mount data is always initialised.\n\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n     (Trond: added fix for the same bug in nfs4_validate_mount_data()).\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4c1fe2f78a08e2c514a39c91a0eb7b55bbd3c0d2",
      "tree": "c420262ec489f3257afcbb5457168da0ce9cc53c",
      "parents": [
        "eda4f9b7996e5520934ca2a7310b363463a4e3b0"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu Nov 01 16:50:20 2007 +1100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Nov 17 13:08:48 2007 -0500"
      },
      "message": "kernel BUG at fs/nfs/namespace.c:108! - can be triggered by bad server\n\n\nHi Trond,\n\nI have discovered that the BUG_ON in nfs_follow_mountpoint:\n\n\tBUG_ON(IS_ROOT(dentry));\n\ncan be triggered by a misbehaving server.\n\nWhat happens is the client does a lookup and discoveres that the named\ndirectory has a different fsid, so it initiates a mount.\nIt then performs a GETATTR on the mounted directory and gets a\ndifferent fsid again (due to a bug in the NFS server).\nThis causes nfs_follow_mountpoint to be called on the newly mounted\nroot, which triggers the BUG_ON.\n\nTo duplicate this, have a directory which contains some mountpoints,\nand export that directory with the \"crossmnt\" flag using nfs-utils\n1.1.1 (or 1.1.0 I think)\n\nThe GETATTR on the root of the mounted filesystem will return the\ninformation for the top exportpoint, while a lookup will return the\ncorrect information.  This difference causes the NFS client to BUG.\n\nI think the best way to fix this is to trap this possibility early, so\njust before completing the mount in the NFS client, check that it isn\u0027t\ngoing to use nfs_mountpoint_inode_operations.\nAs long as i_op will never change once set (is that true?), this\nshould be adequately safe.\n\nThe following patch shows a possible approach, and it works for me.\ni.e. when the NFS server is misbehaving, I get ESTALE on those\nmountpoints, while when the NFS server is working correctly, I get\ncorrect behaviour on the client.\n\nNeilBrown\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bcf35617a7c3474ad12892dfbb089a572e5c06d2",
      "tree": "f7fdd239743614ff8c1b00dc44b34565617689b8",
      "parents": [
        "6e88e0618cb1e354a44cc49a996df4dd89511039"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Sep 24 15:39:55 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:17 2007 -0400"
      },
      "message": "NFS: Show \"nointr\" mount option\n\nThe default \"intr\" setting is different for NFS and NFSv4.  To avoid\nconfusion on this issue, don\u0027t hide the \"nointr\" option in /proc/mounts.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6e88e0618cb1e354a44cc49a996df4dd89511039",
      "tree": "e5da37374d186cf3b6bd91ba2349675abe9d0a6d",
      "parents": [
        "113632d00acb569420b14eb7575833ac7e2eb311"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Sep 24 15:39:50 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:14 2007 -0400"
      },
      "message": "NFS: Verify server address before invoking in-kernel mount client\n\nRe-order mount option sanity checking slightly to ensure we have a valid\nserver address *before* trying to do the mountd RPC call.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2cf7ff7a37cc149bd59c4f3bad432f686a4619c8",
      "tree": "9752290f4a0cb00d10a1fae24db8ef85b85b84e7",
      "parents": [
        "c3a57ed7471a17b07844d531534d970b84b69faf"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:49:41 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:18:00 2007 -0400"
      },
      "message": "NFS: support RDMA mounts\n\nAdds hooks to the string-based NFS mount to support an \"rdma\" protocol option.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "56928edd5afb51d684c38c0bed56594e93ffe4c7",
      "tree": "f4b48628286f923c68727feba78b2b51a6502352",
      "parents": [
        "0896a725a1c5fdc8773a4d1ab0b73059507f5925"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:48:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:55 2007 -0400"
      },
      "message": "NFS - print accurate transport protocol\n\nUse the per-transport strings to display the transport protocol accurately.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0896a725a1c5fdc8773a4d1ab0b73059507f5925",
      "tree": "e8a44eecc411f0d117358752d8a2b80895d81bc0",
      "parents": [
        "4fa016eb248cac875541fa199af550a8aefa0e90"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:48:23 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:53 2007 -0400"
      },
      "message": "NFS/SUNRPC: use transport protocol naming\n\nInstead of an { address family, raw IP protocol number }-tuple, use the\nnewly-defined RPC identifier when creating clients in the upper layers.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "20c71f5e0f954b00d75009542db2c1f844d94a1e",
      "tree": "0ff5e7212188238735757dd72ec746ab673ef1fd",
      "parents": [
        "91ea40b9c6303ddab5c84f078f96b29084b45817"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 20 20:23:51 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:31 2007 -0400"
      },
      "message": "NFSv4: Fix a bug in nfs4_validate_mount_data()\n\nThe previous patch introduced a bug when copying the server address.\n\nAlso clarify a copy into the auth_flavours array: currently the two\nsize calculations are equivalent, but we may decide to change the size\nof auth_flavors[] at some point.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "91ea40b9c6303ddab5c84f078f96b29084b45817",
      "tree": "b7f48effc5adbb1b9c36a7e16ce9133d7152aad9",
      "parents": [
        "2283f8d6ed21ea2221df4cc329314b93f35351b0"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:44:33 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:28 2007 -0400"
      },
      "message": "NFS: use in-kernel mount argument structure for nfsv4 mounts\n\nThe user-visible nfs4_mount_data does not contain sufficient data to\ndescribe new mount options, and also is now a legacy structure. Replace\nit with the internal nfs_parsed_mount_data for nfsv4 in-kernel use.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2283f8d6ed21ea2221df4cc329314b93f35351b0",
      "tree": "dbf8b87e45b4fa76d50c0fd7ec0b3d4f1afd94ca",
      "parents": [
        "6b18eaa0821a559c5e2b7ed4b90f8aca5a8e6228"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:43:56 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:26 2007 -0400"
      },
      "message": "NFS: use in-kernel mount argument structure for nfsv[23] mounts\n\nThe user-visible nfs_mount_data does not contain sufficient data to\ndescribe new mount options, and also is now a legacy structure. Replace\nit with the internal nfs_parsed_mount_data for nfsv[23] in-kernel use.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b18eaa0821a559c5e2b7ed4b90f8aca5a8e6228",
      "tree": "25f02ce2813cf7bc37b73b5a14a9a037c187eab7",
      "parents": [
        "4417c8c41a51a2ae95b2a2fa2811640b368c4151"
      ],
      "author": {
        "name": "\\\"Talpey, Thomas\\",
        "email": "Thomas.Talpey@netapp.com",
        "time": "Mon Sep 10 13:43:29 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:23 2007 -0400"
      },
      "message": "NFS: move nfs_parsed_mount_data structure definition\n\nIn preparation for rearranging the nfs mount argument passing, make the\nnfs_parsed_mount_data struct visible across nfs kernel files.\n\nSigned-off-by: Tom Talpey \u003ctmt@netapp.com\u003e\nAcked-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0ac83779fa5bffb90e32a97abc61f1840af31ee9",
      "tree": "330ecddbeaaf2ba5980bf4377c6726682751fdc8",
      "parents": [
        "aad700073557c7932ef9f81c19a5e0647f8a6850"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 11 18:01:04 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:06 2007 -0400"
      },
      "message": "NFS: Add new \u0027mountaddr\u003d\u0027 mount option\n\nI got the \u0027mounthost\u003d\u0027 option wrong - it shouldn\u0027t look for an address\nvalue, but rather a hostname value.  However, the in-kernel mount client\nand NFS client cannot resolve a hostname by themselves; they rely on\nuser-land to pass in the resolved address.\n\nCreate a new mount option that does take an address so that the mount\nprogram\u0027s address can be passed in.  The mount hostname is now ignored\nby the kernel.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "aad700073557c7932ef9f81c19a5e0647f8a6850",
      "tree": "16fdf949b3c35468805e04b9b970da116bb9d220",
      "parents": [
        "efd8340bb19c26a43e77c92fee9283b1f5777204"
      ],
      "author": {
        "name": "James Lentini",
        "email": "jlentini@netapp.com",
        "time": "Mon Sep 24 17:32:49 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:04 2007 -0400"
      },
      "message": "[NFS] [PATCH] NFS: initialize default port in kernel mount client\n\nIf no mount server port number is specified, the previous change to the\nkernel mount client inadvertently allows the NFS server\u0027s port number to be\nthe used as the mount server\u0027s port number. If the user specifies an NFS\nserver port (-o port\u003dx), the mount will fail.\n\nThe fix below sets the mount server\u0027s port to 0 if no mount server\nport is specified by the user.\n\nSigned-off-by: James Lentini \u003cjlentini@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "efd8340bb19c26a43e77c92fee9283b1f5777204",
      "tree": "86cdb3fde61d900f0ba350db7c9d9586d7d2dcec",
      "parents": [
        "b79dc8ced1412e7056f3969bef40a30cc75ee530"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 11 18:00:58 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:17:01 2007 -0400"
      },
      "message": "NFS: Kernel mount client should use async bind\n\nSimplify the in-kernel mount client by using autobind instead of an\nexplicit call to rpc_getport_sync.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ddc01c0813dc07ca7a2bd32c143a9b54a64915ce",
      "tree": "19bd2ac9bd5f3148879384a9017a077582de1bc6",
      "parents": [
        "f8cf3678f4885d66475b19b10ec2e9918ff2ca1c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Jul 30 08:47:38 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 09 17:15:39 2007 -0400"
      },
      "message": "[NFS] [PATCH] NFS: show addr\u003dipaddr in /proc/mounts rather than\n\nA minor thing, but useful when working with a server with multiple\naddrs. This looks like it might also be necessary if Miklos\u0027 effort\nto eliminate /etc/mtab ever comes to fruition.\n\nWhen displaying mount options in /proc/mounts, the kernel prints\n\"addr\u003dhostname\". This info is redundant since we already have the\nhostname displayed as part of the \"device\" section of the mount. This\npatch changes it to display the IP address to which the socket is\nconnected.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "49af7ee181f4f516ac99eba85d3f70ed42cabe76",
      "tree": "16488e4c2fb10732e87a539bb106624357f10b89",
      "parents": [
        "3d82abae9523c33d4a16fdfdfd2bdde316d7b56a"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Sep 18 22:46:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed Sep 19 11:24:18 2007 -0700"
      },
      "message": "nfs: fix oops re sysctls and V4 support\n\nNFS unregisters sysctls only if V4 support is compiled in.  However, sysctl\ntable is not V4 specific, so unregister it always.\n\nSteps to reproduce:\n\n\t[build nfs.ko with CONFIG_NFS_V4\u003dn]\n\tmodrobe nfs\n\trmmod nfs\n\tls /proc/sys\n\nUnable to handle kernel paging request at ffffffff880661c0 RIP:\n [\u003cffffffff802af8e3\u003e] proc_sys_readdir+0xd3/0x350\nPGD 203067 PUD 207063 PMD 7e216067 PTE 0\nOops: 0000 [1] SMP\nCPU 1\nModules linked in: lockd nfs_acl sunrpc\nPid: 3335, comm: ls Not tainted 2.6.23-rc3-bloat #2\nRIP: 0010:[\u003cffffffff802af8e3\u003e]  [\u003cffffffff802af8e3\u003e] proc_sys_readdir+0xd3/0x350\nRSP: 0018:ffff81007fd93e78  EFLAGS: 00010286\nRAX: ffffffff880661c0 RBX: ffffffff80466370 RCX: ffffffff880661c0\nRDX: 00000000000014c0 RSI: ffff81007f3ad020 RDI: ffff81007efd8b40\nRBP: 0000000000000018 R08: 0000000000000000 R09: 0000000000000000\nR10: 0000000000000001 R11: ffffffff802a8570 R12: ffffffff880661c0\nR13: ffff81007e219640 R14: ffff81007efd8b40 R15: ffff81007ded7280\nFS:  00002ba25ef03060(0000) GS:ffff81007ff81258(0000) knlGS:0000000000000000\nCS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b\nCR2: ffffffff880661c0 CR3: 000000007dfaf000 CR4: 00000000000006e0\nDR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000\nDR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400\nProcess ls (pid: 3335, threadinfo ffff81007fd92000, task ffff81007d8a0000)\nStack:  ffff81007f3ad150 ffffffff80283f30 ffff81007fd93f48 ffff81007efd8b40\n ffff81007ee00440 0000000422222222 0000000200035593 ffffffff88037e9a\n 2222222222222222 ffffffff80466500 ffff81007e416400 ffff81007e219640\nCall Trace:\n [\u003cffffffff80283f30\u003e] filldir+0x0/0xf0\n [\u003cffffffff80283f30\u003e] filldir+0x0/0xf0\n [\u003cffffffff802840c7\u003e] vfs_readdir+0xa7/0xc0\n [\u003cffffffff80284376\u003e] sys_getdents+0x96/0xe0\n [\u003cffffffff8020bb3e\u003e] system_call+0x7e/0x83\n\nCode: 41 8b 14 24 85 d2 74 dc 49 8b 44 24 08 48 85 c0 74 e7 49 3b\nRIP  [\u003cffffffff802af8e3\u003e] proc_sys_readdir+0xd3/0x350\n RSP \u003cffff81007fd93e78\u003e\nCR2: ffffffff880661c0\nKernel panic - not syncing: Fatal exception\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d1cca72994c0e910ca443076dcfcfd473871dda",
      "tree": "298d60951f738592c0ac19aea5cb1e5e57f113a7",
      "parents": [
        "350c73af6af51ae7654dad91874c0d30dd13bbbe"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 29 17:59:03 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Sep 01 10:14:40 2007 -0400"
      },
      "message": "NFS: change NFS mount error return when hostname/pathname too long\n\nAccording to the mount(2) man page, the proper error return code for the\nmount(2) system call when the special device name or the mounted-on\ndirectory name is too long is ENAMETOOLONG.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "350c73af6af51ae7654dad91874c0d30dd13bbbe",
      "tree": "72c706f6085b79865cca7cda7a0ae3b13d8e3fe0",
      "parents": [
        "fdc6e2c8c0dc0ac702fca0b802f5d9ae99a54bb6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 29 17:59:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Sep 01 10:14:40 2007 -0400"
      },
      "message": "NFS: Off-by-one length error in string handling\n\nThe hostname was getting truncated in the new text-based NFS mount API.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdc6e2c8c0dc0ac702fca0b802f5d9ae99a54bb6",
      "tree": "2576d28a27019a9ba7118a2291985599a44e2cc4",
      "parents": [
        "fdb66ff4ace3c4e18809b9b71dfcce1692143147"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 29 17:58:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Sep 01 10:14:39 2007 -0400"
      },
      "message": "NFS: Return a real error code from mount(2)\n\nDon\u0027t filter the return code from the in-kernel rpcbind or NFS mount\nclients.  Return the real error code so that callers of the new NFS\ntext-based mount API can apply a useful retry strategy.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fdb66ff4ace3c4e18809b9b71dfcce1692143147",
      "tree": "8e7db455c604ce2cfe27dcf4332fca8f4c9f8b46",
      "parents": [
        "deee9369b993b52a8e2f25683b4a67be7a65e8ae"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Aug 29 17:58:57 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Sep 01 10:14:38 2007 -0400"
      },
      "message": "NFS: mount option parser chokes on proto\u003d\n\nThe new text-based NFS mount option parsing logic doesn\u0027t recognize any\nvalid transport protocols due to a silly mistake in the protocol token\nmatching logic.  This prevents basic mount requests such as:\n\n   mount.nfs server:/export /mnt -o proto\u003dtcp\n\nfrom working with the new text-based NFS mount API.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e89a5a43b95cdc4305b7c8e8121a380f02476636",
      "tree": "ba286205f1ad11119a06b77fb6671ce9aacac13a",
      "parents": [
        "36ad4885c47c2187822f2783fb46fde2d36bf200"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 31 10:45:17 2007 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Aug 31 20:26:45 2007 -0700"
      },
      "message": "NFS: Fix the mount regression\n\nThis avoids the recent NFS mount regression (returning EBUSY when\nmounting the same filesystem twice with different parameters).\n\nThe best I can do given the constraints appears to be to have the kernel\nfirst look for a superblock that matches both the fsid and the\nuser-specified mount options, and then spawn off a new superblock if\nthat search fails.\n\nNote that this is not the same as specifying nosharecache everywhere\nsince nosharecache will never attempt to match an existing superblock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Hua Zhong \u003chzhong@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41089644c110756a6d09ace77c8d7624660d086a",
      "tree": "d61b773bf0508925142c6d2941c4609afe5a9538",
      "parents": [
        "77668791d96436f48fca94255934b67dab924a0f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sun Jul 22 10:59:06 2007 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sun Jul 22 11:15:18 2007 -0700"
      },
      "message": "fix broken handling of port\u003d... in NFS option parsing\n\nObviously broken on little-endian; fortunately, the option is not\nfrequently used...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n[ Hey, sparse is wonderful, but even better than sparse is having people\n  like Al that actually _run_ it and fix bugs using it.    - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a87cf128f3d3bc6aa7b1040e73109c974ed875a",
      "tree": "07bfeee89a7df2377cdb2b7d6770d66edd8bb308",
      "parents": [
        "f9d888fcd9665b863fa042212a3ee7b4c51399f6"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jul 18 11:28:43 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jul 19 15:21:40 2007 -0400"
      },
      "message": "NFSv4: handle lack of clientaddr in option string\n\nIf a NFSv4 mount is attempted  with string based options, and the\noption string doesn\u0027t contain a clientaddr\u003d option, the kernel will\ncurrently oops. Check for this situation and return a proper error.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8e1f936b73150f5095448a0fee6d4f30a1f9001d",
      "tree": "0996203e35c629e2ec243d128c7bd91ecd74d24a",
      "parents": [
        "5ad333eb66ff1e52a87639822ae088577669dcf9"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jul 17 04:03:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Jul 17 10:23:00 2007 -0700"
      },
      "message": "mm: clean up and kernelify shrinker registration\n\nI can never remember what the function to register to receive VM pressure\nis called.  I have to trace down from __alloc_pages() to find it.\n\nIt\u0027s called \"set_shrinker()\", and it needs Your Help.\n\n1) Don\u0027t hide struct shrinker.  It contains no magic.\n2) Don\u0027t allocate \"struct shrinker\".  It\u0027s not helpful.\n3) Call them \"register_shrinker\" and \"unregister_shrinker\".\n4) Call the function \"shrink\" not \"shrinker\".\n5) Reduce the 17 lines of waffly comments to 13, but document it properly.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: David Chinner \u003cdgc@sgi.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "275a5d24bf56b2d9dd4644c54a56366b89a028f1",
      "tree": "2c429fc9480ef292b8cfdc81be05f3ff2b2c02a5",
      "parents": [
        "75180df2ed467866ada839fe73cf7cc7d75c0a22"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 16 16:53:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:48 2007 -0400"
      },
      "message": "NFS: Error when mounting the same filesystem with different options\n\nUnless the user sets the NFS_MOUNT_NOSHAREDCACHE mount flag, we should\nreturn EBUSY if the filesystem is already mounted on a superblock that\nhas set conflicting mount options.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "75180df2ed467866ada839fe73cf7cc7d75c0a22",
      "tree": "35966d0b22e58cc49ddee5b5f8d0e64c577dc576",
      "parents": [
        "8007122520f0a3599bdc4df47358a5d83b2574aa"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed May 16 16:53:28 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:48 2007 -0400"
      },
      "message": "NFS: Add the mount option \"nosharecache\"\n\nPrior to David Howell\u0027s mount changes in 2.6.18, users who mounted\ndifferent directories which happened to be from the same filesystem on the\nserver would get different super blocks, and hence could choose different\nmount options. As long as there were no hard linked files that crossed from\none subtree to another, this was quite safe.\nPost the changes, if the two directories are on the same filesystem (have\nthe same \u0027fsid\u0027), they will share the same super block, and hence the same\nmount options.\n\nAdd a flag to allow users to elect not to share the NFS super block with\nanother mount point, even if the fsids are the same. This will allow\nusers to set different mount options for the two different super blocks, as\nwas previously possible. It is still up to the user to ensure that there\nare no cache coherency issues when doing this, however the default\nbehaviour will be to share super blocks whenever two paths result in\nthe same fsid.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8007122520f0a3599bdc4df47358a5d83b2574aa",
      "tree": "d2d0def406e081ac32f487b54d2ad347f4f28e81",
      "parents": [
        "136d558ce766967fe3cbf54c3351aba261b5d53b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:13:59 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:48 2007 -0400"
      },
      "message": "NFS: Add support for mounting NFSv4 file systems with string options\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "136d558ce766967fe3cbf54c3351aba261b5d53b",
      "tree": "c1c66b7478149fc2f3ef3cf1a04bd1e22324eedc",
      "parents": [
        "0076d7b7bab580ca2e94637d351fa7cd357743a8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:13:54 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:48 2007 -0400"
      },
      "message": "NFS: Add final pieces to support in-kernel mount option parsing\n\nHook in final components required for supporting in-kernel mount option\nparsing for NFSv2 and NFSv3 mounts.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0076d7b7bab580ca2e94637d351fa7cd357743a8",
      "tree": "ff41168c86b1ee4c5030c67bf2ca754b6fbe53e8",
      "parents": [
        "bf0fd7680f1cf31b9cbabcc037a204548e2c866d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:13:49 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:47 2007 -0400"
      },
      "message": "NFS: Introduce generic mount client API\n\nFor NFSv2 and v3 mounts, the first step is to contact the server\u0027s MOUNTD\nand request the file handle for the root of the mounted share.  Add a\nfunction to the NFS client that handles this operation.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bf0fd7680f1cf31b9cbabcc037a204548e2c866d",
      "tree": "928e908559377a0489f8b4004d821d8f61c761bf",
      "parents": [
        "013a8c1ab5a214c608e12b602770449fb6b15a81"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:13:44 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:47 2007 -0400"
      },
      "message": "NFS: Add enums and match tables for mount option parsing\n\nThis generic infrastructure works for both NFS and NFSv4 mounts.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0768ebd09385551277fcbc8b28c29eb491bf9e2",
      "tree": "c89bec443ac7bc8967eb24f8de71e7fb8498fc3e",
      "parents": [
        "5df36e78da9db1c5f02b429116ed98902bcc75e5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:13:01 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:45 2007 -0400"
      },
      "message": "NFS: Introduce nfs4_validate_mount_options\n\nRefactor NFSv4 mount processing to break out mount data validation\nin the same way it\u0027s broken out in the NFSv2/v3 mount path.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5df36e78da9db1c5f02b429116ed98902bcc75e5",
      "tree": "b8724195fa2f6a12a095ae4c63da58be3de0afdb",
      "parents": [
        "f18289931d705f9c4634b361341a1677bea97aca"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:56 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:45 2007 -0400"
      },
      "message": "NFS: Clean up nfs_validate_mount_data\n\nMove error handling code out of the main code path.  The switch statement\nwas also improperly indented, according to Documentation/CodingStyle.  This\nprepares nfs_validate_mount_data for the addition of option string parsing.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc50d58fd053862d6bafcf92f1ef2961296f3a1c",
      "tree": "fa445db9d7a61fad98c74214e62094c69816a1ea",
      "parents": [
        "4d81cd16112f86dc279d90ef7a24f2b1be339c3c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:46 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean-up: Refactor IP address sanity checks in NFS client\n\nNFS and NFSv4 mounts can now share server address sanity checking.  And, it\nprovides an easy mechanism for adding IPv6 address checking at some later\npoint.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nCc: Aurelien Charbon \u003caurelien.charbon@ext.bull.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4d81cd16112f86dc279d90ef7a24f2b1be339c3c",
      "tree": "845b752db51792da6a5841196e3bede634c322aa",
      "parents": [
        "0655960f76922a720ad14a510ed91a51395e742b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:40 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean-up: fix a compiler warning in fs/nfs/super.c\n\n/home/cel/linux/fs/nfs/super.c: In function \u0027nfs_pseudoflavour_to_name\u0027:\n/home/cel/linux/fs/nfs/super.c:270: warning: comparison between signed and unsigned\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0655960f76922a720ad14a510ed91a51395e742b",
      "tree": "a1dee04fc1ebaddb2a700627f3c9eb57df2938c7",
      "parents": [
        "29eb981a3b8eb4e61cd5b9da835768045d0446cb"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:35 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean up error handling in nfs_get_sb\n\nThe error return logic in nfs_get_sb now matches nfs4_get_sb, and is more maintainable.\nA subsequent patch will take advantage of this simplification.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "29eb981a3b8eb4e61cd5b9da835768045d0446cb",
      "tree": "e3239d5ba9857c2f2338be53633fdc319044a186",
      "parents": [
        "5680d48be88d12cd987e5579a6072a4ca34ca6ea"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:30 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean-up: Replace nfs_copy_user_string with strndup_user\n\nThe new string utility function strndup_user can be used instead of\nnfs_copy_user_string, eliminating an unnecessary duplication of function.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5680d48be88d12cd987e5579a6072a4ca34ca6ea",
      "tree": "030cb42a88efbd5ea35296d9d4d520e1ec63f618",
      "parents": [
        "9eaa67c6a5b77f248c4703d81c4a6c6434e35385"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Jul 01 12:12:24 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:44 2007 -0400"
      },
      "message": "NFS: Clean-up: Define macros for maximum host and export path name lengths\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc6ae3cf482c385a6fe87ba119d399bb85aa670b",
      "tree": "0bd1f3392f1e4d2a902eb0e23a4978cfe91f1843",
      "parents": [
        "83d93f2229348837bf988a1048f7f38789474471"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 05 19:13:47 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 10 23:40:25 2007 -0400"
      },
      "message": "NFS: Re-enable forced umounts\n\nThey disappeared some time around 2.6.18.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "74dd34e6e8bb127ff4c182423154b294729b663b",
      "tree": "6e5aef4263a4026942efd03fc2ea974a419153b1",
      "parents": [
        "00a6e7bbf990e3a5e59a9a1e6a68e99c94fe001c"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Sat Apr 14 17:01:15 2007 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:16 2007 -0700"
      },
      "message": "NFS: Added support to turn off the NFSv3 READDIRPLUS RPC.\n\nREADDIRPLUS can be a performance hindrance when the client is working with\nlarge directories. In addition, some servers still have bugs in their\nimplementations (e.g. Tru64 returns wrong values for the fsid).\n\nAdd a mount flag to enable users to turn it off at mount time following the\nimplementation in Apple\u0027s NFS client.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1a0ba9ae485c5fd17d0bff2f14d9dd75b8985593",
      "tree": "7ff4d7658ce51b33a23a127dbe848bc076cdf597",
      "parents": [
        "d585158b608248a6ba8ae75e234672e048d3fde9"
      ],
      "author": {
        "name": "Amnon Aaronsohn",
        "email": "amnonaar@gmail.com",
        "time": "Mon Apr 09 22:05:26 2007 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Apr 30 22:17:02 2007 -0700"
      },
      "message": "NFS: statfs error-handling fix\n\nThe nfs statfs function returns a success code on error, and fills the\noutput buffer with invalid values.  The attached patch makes it return a\ncorrect error code instead.\n\nSigned-off-by: Amnon Aaronsohn \u003camnonaar@gmail.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n (Modified patch to reinstate the dprintk())\n"
    },
    {
      "commit": "89a09141df6ac1c3821fbe44ca8384eb37692965",
      "tree": "ccb21055fca86ac2657b3262ac37eb3e5c44bea0",
      "parents": [
        "b74a2f0913694556a027795d2954d30523fac4c5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Mar 16 13:38:26 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Fri Mar 16 19:25:05 2007 -0700"
      },
      "message": "[PATCH] nfs: fix congestion control\n\nThe current NFS client congestion logic is severly broken, it marks the\nbacking device congested during each nfs_writepages() call but doesn\u0027t\nmirror this in nfs_writepage() which makes for deadlocks.  Also it\nimplements its own waitqueue.\n\nReplace this by a more regular congestion implementation that puts a cap on\nthe number of active writeback pages and uses the bdi congestion waitqueue.\n\nAlso always use an interruptible wait since it makes sense to be able to\nSIGKILL the process even for mounts without \u0027intr\u0027.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9bc125caf592b7d081021f32ce5b717efdf70c8",
      "tree": "263b7066ba22ddce21db610c0300f6eaac6f2064",
      "parents": [
        "43d78ef2ba5bec26d0315859e8324bfc0be23766",
        "ec2f9d1331f658433411c58077871e1eef4ee1b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:43:25 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Feb 12 22:43:25 2007 -0800"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tnet/sunrpc/auth_gss/gss_krb5_crypto.c\n\tnet/sunrpc/auth_gss/gss_spkm3_token.c\n\tnet/sunrpc/clnt.c\n\nMerge with mainline and fix conflicts.\n"
    },
    {
      "commit": "ee9b6d61a2a43c5952eb43283f8db284a4e70b8a",
      "tree": "afb0340e79d3e9d14f39df20e165ce2efe941b18",
      "parents": [
        "c5ef1c42c51b1b5b4a401a6517bdda30933ddbaf"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Mon Feb 12 00:55:41 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:47 2007 -0800"
      },
      "message": "[PATCH] Mark struct super_operations const\n\nThis patch is inspired by Arjan\u0027s \"Patch series to mark struct\nfile_operations and struct inode_operations const\".\n\nCompile tested with gcc \u0026 sparse.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b5d5dfbd59577aed72263f22e28d3eaf98e1c6e5",
      "tree": "9ef320c6ff4f61bffb25c0452570d5f76ab7769c",
      "parents": [
        "77f1f67a1a56defa210c3d8857f3e5eee3990a99"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Feb 12 00:53:40 2007 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon Feb 12 09:48:36 2007 -0800"
      },
      "message": "[PATCH] include/linux/nfsd/const.h: remove NFS_SUPER_MAGIC\n\nNFS_SUPER_MAGIC is already defined in include/linux/magic.h\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: 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": "f2d0d85e58099d518cb50b1c95fc1fc62bbce1b8",
      "tree": "b8b14f9f4d803b90c2d8a96faef082f1b6e257be",
      "parents": [
        "2efef837fb84f78cee7439804cb3722bffc64e75"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Feb 02 14:46:09 2007 -0800"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Feb 03 15:35:03 2007 -0800"
      },
      "message": "NFSv4: Fix Oops in nfs4_create_referral_server\n\nThe filehandle that is passed into nfs4_create_referral_server is\nnot initialised. The expectation is that nfs4_create_referral_server will\ninitialise it, and return it to the caller.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "575b5c7870c940326a11614e0279b74356c1d44f",
      "tree": "5d083bc7356d6da6a146039f4fb8a9dfe0d61b52",
      "parents": [
        "0e7d73824e6b0024100701da246fec769dd8f087"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 19 23:28:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 20 10:26:38 2006 -0700"
      },
      "message": "[PATCH] NFSv4: Fix thinko in fs/nfs/super.c\n\nDuh. addr.sin_port should be in network byte order.\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": "038b0a6d8d32db934bba6a24e74e76e4e327a94f",
      "tree": "5fbeb3e8f140e20f8ce0e33e12b32ec5b0724cd6",
      "parents": [
        "78b656b8bf933101b42409b4492734b23427bfc3"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Oct 04 03:38:54 2006 -0400"
      },
      "committer": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Wed Oct 04 03:38:54 2006 -0400"
      },
      "message": "Remove all inclusions of \u003clinux/config.h\u003e\nkbuild explicitly includes this at build time.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "349457ccf2592c14bdf13b6706170ae2e94931b1",
      "tree": "3670945b5a62617d38cf1f317487387032d3da4d",
      "parents": [
        "1390334b4c697b7588d5661fcf6acaeec409cf4c"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 08 14:22:21 2006 -0700"
      },
      "committer": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Sun Sep 24 13:50:45 2006 -0700"
      },
      "message": "[PATCH] Allow file systems to manually d_move() inside of -\u003erename()\n\nSome file systems want to manually d_move() the dentries involved in a\nrename.  We can do this by making use of the FS_ODD_RENAME flag if we just\nhave nfs_rename() unconditionally do the d_move().  While there, we rename\nthe flag to be more descriptive.\n\nOCFS2 uses this to protect that part of the rename operation with a cluster\nlock.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n"
    },
    {
      "commit": "51b6ded4d9a94a61035deba1d8f51a54e3a3dd86",
      "tree": "ec5a7a1cd573a2839e1af36aa74afb217dd1c01c",
      "parents": [
        "2066fe89b459c3c787c811b3369df191cddd93d8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 15 16:31:56 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:04 2006 -0400"
      },
      "message": "NFSv4: When mounting with a port\u003d0 argument, substitute port\u003d2049\n\nRFC3530 states that the registered port 2049 for the NFS protocol should be\nthe default configuration in order to allow clients not to use the RPC\nbinding protocols.\nIf the mount program sends us a port\u003d0, we therefore substitute port\u003d2049.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dd3177ae5012c1e2ad7a9ffdbd0e0d0de2f60e4",
      "tree": "2a8730d6443f6d33e8879cfc323396f9a570b97b",
      "parents": [
        "275a082fe9308e710324e26ccb5363c53d8fd45f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 24 01:03:05 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:54 2006 -0400"
      },
      "message": "NFSv4: Fix a use-after-free issue with the nfs server.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "36b15c54cd0d6f707a3ac03e4a2a60bb530a95b9",
      "tree": "09aa1cff411f9a26c1da9255241a865b13d738f3",
      "parents": [
        "738a35195941ecf604d3070e2a053e1df3de350b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 22 20:06:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:38 2006 -0400"
      },
      "message": "NFS: Ensure NFSv2/v3 mounts respect the NFS_MOUNT_SECFLAVOUR flag\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "54ceac4515986030c2502960be620198dd8fe25b",
      "tree": "b4ae4305c5652c0fe883ef5ea3243da91dbd2b34",
      "parents": [
        "cf6d7b5de8535a9f0088c5cc28ee2dae87371b4a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:13 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Share NFS superblocks per-protocol per-server per-FSID\n\nThe attached patch makes NFS share superblocks between mounts from the same\nserver and FSID over the same protocol.\n\nIt does this by creating each superblock with a false root and returning the\nreal root dentry in the vfsmount presented by get_sb(). The root dentry set\nstarts off as an anonymous dentry if we don\u0027t already have the dentry for its\ninode, otherwise it simply returns the dentry we already have.\n\nWe may thus end up with several trees of dentries in the superblock, and if at\nsome later point one of anonymous tree roots is discovered by normal filesystem\nactivity to be located in another tree within the superblock, the anonymous\nroot is named and materialises attached to the second tree at the appropriate\npoint.\n\nWhy do it this way? Why not pass an extra argument to the mount() syscall to\nindicate the subpath and then pathwalk from the server root to the desired\ndirectory? You can\u0027t guarantee this will work for two reasons:\n\n (1) The root and intervening nodes may not be accessible to the client.\n\n     With NFS2 and NFS3, for instance, mountd is called on the server to get\n     the filehandle for the tip of a path. mountd won\u0027t give us handles for\n     anything we don\u0027t have permission to access, and so we can\u0027t set up NFS\n     inodes for such nodes, and so can\u0027t easily set up dentries (we\u0027d have to\n     have ghost inodes or something).\n\n     With this patch we don\u0027t actually create dentries until we get handles\n     from the server that we can use to set up their inodes, and we don\u0027t\n     actually bind them into the tree until we know for sure where they go.\n\n (2) Inaccessible symbolic links.\n\n     If we\u0027re asked to mount two exports from the server, eg:\n\n\tmount warthog:/warthog/aaa/xxx /mmm\n\tmount warthog:/warthog/bbb/yyy /nnn\n\n     We may not be able to access anything nearer the root than xxx and yyy,\n     but we may find out later that /mmm/www/yyy, say, is actually the same\n     directory as the one mounted on /nnn. What we might then find out, for\n     example, is that /warthog/bbb was actually a symbolic link to\n     /warthog/aaa/xxx/www, but we can\u0027t actually determine that by talking to\n     the server until /warthog is made available by NFS.\n\n     This would lead to having constructed an errneous dentry tree which we\n     can\u0027t easily fix. We can end up with a dentry marked as a directory when\n     it should actually be a symlink, or we could end up with an apparently\n     hardlinked directory.\n\n     With this patch we need not make assumptions about the type of a dentry\n     for which we can\u0027t retrieve information, nor need we assume we know its\n     place in the grand scheme of things until we actually see that place.\n\nThis patch reduces the possibility of aliasing in the inode and page caches for\ninodes that may be accessed by more than one NFS export. It also reduces the\nnumber of superblocks required for NFS where there are many NFS exports being\nused from a server (home directory server + autofs for example).\n\nThis in turn makes it simpler to do local caching of network filesystems, as it\ncan then be guaranteed that there won\u0027t be links from multiple inodes in\nseparate superblocks to the same cache file.\n\nObviously, cache aliasing between different levels of NFS protocol could still\nbe a problem, but at least that gives us another key to use when indexing the\ncache.\n\nThis patch makes the following changes:\n\n (1) The server record construction/destruction has been abstracted out into\n     its own set of functions to make things easier to get right.  These have\n     been moved into fs/nfs/client.c.\n\n     All the code in fs/nfs/client.c has to do with the management of\n     connections to servers, and doesn\u0027t touch superblocks in any way; the\n     remaining code in fs/nfs/super.c has to do with VFS superblock management.\n\n (2) The sequence of events undertaken by NFS mount is now reordered:\n\n     (a) A volume representation (struct nfs_server) is allocated.\n\n     (b) A server representation (struct nfs_client) is acquired.  This may be\n     \t allocated or shared, and is keyed on server address, port and NFS\n     \t version.\n\n     (c) If allocated, the client representation is initialised.  The state\n     \t member variable of nfs_client is used to prevent a race during\n     \t initialisation from two mounts.\n\n     (d) For NFS4 a simple pathwalk is performed, walking from FH to FH to find\n     \t the root filehandle for the mount (fs/nfs/getroot.c).  For NFS2/3 we\n     \t are given the root FH in advance.\n\n     (e) The volume FSID is probed for on the root FH.\n\n     (f) The volume representation is initialised from the FSINFO record\n     \t retrieved on the root FH.\n\n     (g) sget() is called to acquire a superblock.  This may be allocated or\n     \t shared, keyed on client pointer and FSID.\n\n     (h) If allocated, the superblock is initialised.\n\n     (i) If the superblock is shared, then the new nfs_server record is\n     \t discarded.\n\n     (j) The root dentry for this mount is looked up from the root FH.\n\n     (k) The root dentry for this mount is assigned to the vfsmount.\n\n (3) nfs_readdir_lookup() creates dentries for each of the entries readdir()\n     returns; this function now attaches disconnected trees from alternate\n     roots that happen to be discovered attached to a directory being read (in\n     the same way nfs_lookup() is made to do for lookup ops).\n\n     The new d_materialise_unique() function is now used to do this, thus\n     permitting the whole thing to be done under one set of locks, and thus\n     avoiding any race between mount and lookup operations on the same\n     directory.\n\n (4) The client management code uses a new debug facility: NFSDBG_CLIENT which\n     is set by echoing 1024 to /proc/net/sunrpc/nfs_debug.\n\n (5) Clone mounts are now called xdev mounts.\n\n (6) Use the dentry passed to the statfs() op as the handle for retrieving fs\n     statistics rather than the root dentry of the superblock (which is now a\n     dummy).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf6d7b5de8535a9f0088c5cc28ee2dae87371b4a",
      "tree": "815aecb371fc5b702c209bbda550e950e2bd1b04",
      "parents": [
        "5006a76cca8f86c6975c16fcf67e83b8b0eee2b6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:36 2006 -0400"
      },
      "message": "NFS: Start rpciod in server common management\n\nStart rpciod in the server common (nfs_client struct) management code rather\nthan in the superblock management code.  This means we only need to \"start\" it\nonce per server instead of once per superblock.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5006a76cca8f86c6975c16fcf67e83b8b0eee2b6",
      "tree": "fbe711871729ddfc921e91ba86202a15c5a1a55f",
      "parents": [
        "8fa5c000d7f986ef9cdc6d95f9f7fcee20e0a7d6"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:36 2006 -0400"
      },
      "message": "NFS: Eliminate client_sys in favour of cl_rpcclient\n\nEliminate nfs_server::client_sys in favour of nfs_client::cl_rpcclient as we\nonly really need one per server that we\u0027re talking to since it doesn\u0027t have any\nsecurity on it.\n\nThe retransmission management variables are also moved to the common struct as\nthey\u0027re required to set up the cl_rpcclient connection.\n\nThe NFS2/3 client and client_acl connections are thenceforth derived by cloning\nthe cl_rpcclient connection and post-applying the authorisation flavour.\n\nThe code for setting up the initial common connection has been moved to\nclient.c as nfs_create_rpc_client().  All the NFS program definition tables are\nalso moved there as that\u0027s where they\u0027re now required rather than super.c.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fa5c000d7f986ef9cdc6d95f9f7fcee20e0a7d6",
      "tree": "356b811803db9775fd9c870d189a9ff75885ae6c",
      "parents": [
        "1f163415dc05983830bcc47b33c155b2528b1574"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:35 2006 -0400"
      },
      "message": "NFS: Move rpc_ops from nfs_server to nfs_client\n\nMove the rpc_ops from the nfs_server struct to the nfs_client struct as they\u0027re\ncommon to all server records of a particular NFS protocol version.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "27951bd26031f6c27d38df9e94623bbe208a2464",
      "tree": "4d5b84cb50ad06883e5aaf16d144ce6cdab9f006",
      "parents": [
        "509de8111656a7d89b4a1a5f430f4460ce510f0f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:11 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:35 2006 -0400"
      },
      "message": "NFS: Maintain a common server record for NFS2/3 as well as for NFS4\n\nMaintain a common server record for NFS2/3 as well as for NFS4 so that common\nstuff can be moved there from struct nfs_server.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "509de8111656a7d89b4a1a5f430f4460ce510f0f",
      "tree": "94ec0130ab74a5c80956ca3edd3298999b3b9897",
      "parents": [
        "0c7d90cfed91a283228017ba6faf37ee0bcd32b1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:11 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:34 2006 -0400"
      },
      "message": "NFS: Add extra const qualifiers\n\nAdd some extra const qualifiers into NFS.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0c7d90cfed91a283228017ba6faf37ee0bcd32b1",
      "tree": "bf8aae1186e905660f179cbda720ce51d1b7498c",
      "parents": [
        "24c8dbbb5f777187d660393599641ab3307b4b97"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:10 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:34 2006 -0400"
      },
      "message": "NFS: Use the dentry superblock directly in nfs_statfs()\n\nUse the nominated dentry\u0027s superblock directly in the NFS statfs() op to get a\nfile handle, rather than using s_root (which will become a dummy dentry in a\nfuture patch).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24c8dbbb5f777187d660393599641ab3307b4b97",
      "tree": "9d50fdd57c7593d925a21e4bb049095a4e4ead6f",
      "parents": [
        "e9326dcab413848e70ab746c7c5363da13e5f801"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:10 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:33 2006 -0400"
      },
      "message": "NFS: Generalise the nfs_client structure\n\nGeneralise the nfs_client structure by:\n\n (1) Moving nfs_client to a more general place (nfs_fs_sb.h).\n\n (2) Renaming its maintenance routines to be non-NFS4 specific.\n\n (3) Move those maintenance routines to a new non-NFS4 specific file (client.c)\n     and move the declarations to internal.h.\n\n (4) Make nfs_find/get_client() take a full sockaddr_in to include the port\n     number (will be required for NFS2/3).\n\n (5) Make nfs_find/get_client() take the NFS protocol version (again will be\n     required to differentiate NFS2, 3 \u0026 4 client records).\n\nAlso:\n\n (6) Make nfs_client construction proceed akin to inodes, marking them as under\n     construction and providing a function to indicate completion.\n\n (7) Make nfs_get_client() wait interruptibly if it finds a client that it can\n     share, but that client is currently being constructed.\n\n (8) Make nfs4_create_client() use (6) and (7) instead of locking cl_sem.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7162792b5c0e0f6e91b8997f8e6bbc76ec5420a",
      "tree": "214c0aec3cee41cf872e0c4940fa778f6c0f94e9",
      "parents": [
        "7539bbab8062aadc1db95a22b377146843cfa88f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:09 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:32 2006 -0400"
      },
      "message": "NFS: Return an error when starting the idmapping pipe\n\nReturn an error when starting the idmapping pipe so that we can detect it\nfailing.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7539bbab8062aadc1db95a22b377146843cfa88f",
      "tree": "697983ea016cbe378e4f2128846edebd78e468b9",
      "parents": [
        "adfa6f980bd46974e6b32b22dd0c45e3f52063f4"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:09 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:32 2006 -0400"
      },
      "message": "NFS: Rename nfs_server::nfs4_state\n\nRename nfs_server::nfs4_state to nfs_client as it will be used to represent the\nclient state for NFS2 and NFS3 also.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "adfa6f980bd46974e6b32b22dd0c45e3f52063f4",
      "tree": "7dbc86985faa0fce0e73103979262c1593ea3a3b",
      "parents": [
        "5ae1fbce142b67bf59e15fb1af96e88a96abde7b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:08 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:31 2006 -0400"
      },
      "message": "NFS: Rename struct nfs4_client to struct nfs_client\n\nRename struct nfs4_client to struct nfs_client so that it can become the basis\nfor a general client record for NFS2 and NFS3 in addition to NFS4.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d4e2747a0412583526a162fbbd6edeeafcceb08",
      "tree": "756180b37a02b504998c646ff027652f80e10bab",
      "parents": [
        "770bfad846ab6628444428467b11fa6773ae9ea1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:07 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:30 2006 -0400"
      },
      "message": "NFS: Fix up split of fs/nfs/inode.c\n\nFix ups for the splitting of the superblock stuff out of fs/nfs/inode.c,\nincluding:\n\n (*) Move the callback tcpport module param into callback.c.\n\n (*) Move the idmap cache timeout module param into idmap.c.\n\n (*) Changes to internal.h:\n\n     (*) namespace-nfs4.c was renamed to nfs4namespace.c.\n\n     (*) nfs_stat_to_errno() is in nfs2xdr.c, not nfs4xdr.c.\n\n     (*) nfs4xdr.c is contingent on CONFIG_NFS_V4.\n\n     (*) nfs4_path() is only uses if CONFIG_NFS_V4 is set.\n\nPlus also:\n\n (*) The sec_flavours[] table should really be const.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "979df72e6f963b42ee484f2eca049c3344da0ba7",
      "tree": "f3ba48a16203c899dbe57482c1ff7f1c02e0c9ca",
      "parents": [
        "cfcea3e8c66c2dcde98d5c2693d4bff50b5cac97"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 25 11:28:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:29 2006 -0400"
      },
      "message": "NFS: Add an ACCESS cache memory shrinker\n\nA pinned inode may in theory end up filling memory with cached ACCESS\ncalls. This patch ensures that the VM may shrink away the cache in these\nparticular cases.\nThe shrinker works by iterating through the list of inodes on the global\nnfs_access_lru_list, and removing the least recently used access\ncache entry until it is done (or until the entire cache is empty).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ab86aa13045e7f6742af0b3c3c45f952f9fbb8d",
      "tree": "d301f1faaa3e62459edde714cb0c3d4a67a4f8cf",
      "parents": [
        "d75d54147db9db5194040bd1c5022df6ba36ee48"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jun 25 02:41:27 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:38:47 2006 -0400"
      },
      "message": "nfs-build-fix-99\n\nfs/built-in.o:(__param+0x20): undefined reference to `nfs_idmap_cache_timeout\u0027\nfs/built-in.o:(__param+0x48): undefined reference to `nfs_callback_set_tcpport\u0027\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nCc: Andy Adamson \u003candros@citi.umich.edu\u003e\nCc: Chuck Lever \u003ccel@netapp.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "816724e65c72a90a44fbad0ef0b59b186c85fa90",
      "tree": "421fa29aedff988e392f92780637553e275d37a0",
      "parents": [
        "70ac4385a13f78bc478f26d317511893741b05bd",
        "d384ea691fe4ea8c2dd5b9b8d9042eb181776f18"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 08:41:41 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 24 13:07:53 2006 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of /home/trondmy/kernel/linux-2.6/\n\nConflicts:\n\n\tfs/nfs/inode.c\n\tfs/super.c\n\nFix conflicts between patch \u0027NFS: Split fs/nfs/inode.c\u0027 and patch\n\u0027VFS: Permit filesystem to override root dentry on mount\u0027\n"
    },
    {
      "commit": "81039f1f204a0fd2952112a240284e114f1a25e6",
      "tree": "511625e9ea5361dc240ef0540aff7e5cde1551cb",
      "parents": [
        "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:34 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:34 2006 -0400"
      },
      "message": "NFS: Display the chosen RPCSEC_GSS security flavour in /proc/mounts\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72",
      "tree": "4ae8372762efc092ceb4f884b57cad1efe6594de",
      "parents": [
        "4e5ccf60c5aa79d325c123f47d288a068166f389"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "message": "NFS: Split fs/nfs/inode.c\n\nAs fs/nfs/inode.c is rather large, heterogenous and unwieldy, the attached\npatch splits it up into a number of files:\n\n (*) fs/nfs/inode.c\n\n     Strictly inode specific functions.\n\n (*) fs/nfs/super.c\n\n     Superblock management functions for NFS and NFS4, normal access, clones\n     and referrals.  The NFS4 superblock functions _could_ move out into a\n     separate conditionally compiled file, but it\u0027s probably not worth it as\n     there\u0027re so many common bits.\n\n (*) fs/nfs/namespace.c\n\n     Some namespace-specific functions have been moved here.\n\n (*) fs/nfs/nfs4namespace.c\n\n     NFS4-specific namespace functions (this could be merged into the previous\n     file).  This file is conditionally compiled.\n\n (*) fs/nfs/internal.h\n\n     Inter-file declarations, plus a few simple utility functions moved from\n     fs/nfs/inode.c.\n\n     Additionally, all the in-.c-file externs have been moved here, and those\n     files they were moved from now includes this file.\n\nFor the most part, the functions have not been changed, only some multiplexor\nfunctions have changed significantly.\n\nI\u0027ve also:\n\n (*) Added some extra banner comments above some functions.\n\n (*) Rearranged the function order within the files to be more logical and\n     better grouped (IMO), though someone may prefer a different order.\n\n (*) Reduced the number of #ifdefs in .c files.\n\n (*) Added missing __init and __exit directives.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    }
  ]
}
