)]}'
{
  "log": [
    {
      "commit": "526719ba51e7d7bd31f7af9ab04b015b70096685",
      "tree": "ccbacb533487b9f0b9e475050b3804fa506e7faf",
      "parents": [
        "77122d0b5d1fb2276b1fe7bce6366f22b2f96606"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Mon Oct 27 15:19:48 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 27 08:40:17 2008 -0700"
      },
      "message": "Switch to a valid email address...\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f696a3659fc4b3a3bf4bc83d9dbec5e5a2ffd929",
      "tree": "738adf557608f26e881a710839de12b7527549b6",
      "parents": [
        "5cec56deb6d41b5b570306b17cd0b1590ebd0897"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "miklos@szeredi.hu",
        "time": "Thu Jul 31 13:41:58 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:25 2008 -0400"
      },
      "message": "[PATCH] move executable checking into -\u003epermission()\n\nFor execute permission on a regular files we need to check if file has\nany execute bits at all, regardless of capabilites.\n\nThis check is normally performed by generic_permission() but was also\nadded to the case when the filesystem defines its own -\u003epermission()\nmethod.  In the latter case the filesystem should be responsible for\nperforming this check.\n\nMove the check from inode_permission() inside filesystems which are\nnot calling generic_permission().\n\nCreate a helper function execute_ok() that returns true if the inode\nis a directory or if any execute bits are present in i_mode.\n\nAlso fix up the following code:\n\n - coda control file is never executable\n - sysctl files are never executable\n - hfs_permission seems broken on MAY_EXEC, remove\n - hfsplus_permission is eqivalent to generic_permission(), remove\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n"
    },
    {
      "commit": "440037287c5ebb07033ab927ca16bb68c291d309",
      "tree": "c4be3843ea87a777c2647f471895917005d8068f",
      "parents": [
        "4ea3ada2955e4519befa98ff55dd62d6dfbd1705"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Aug 11 15:49:04 2008 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:13:01 2008 -0400"
      },
      "message": "[PATCH] switch all filesystems over to d_obtain_alias\n\nSwitch all users of d_alloc_anon to d_obtain_alias.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3516586a424ea5727be089da6541cbd5644f0497",
      "tree": "cb55c6262e066c393917735021aa2bd801f6dd16",
      "parents": [
        "2c552d81363e0dac66d478046cc8a3948a67eae9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Aug 05 03:00:49 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 23 05:12:56 2008 -0400"
      },
      "message": "[PATCH] make O_EXCL in nd-\u003eintent.flags visible in nd-\u003eflags\n\nNew flag: LOOKUP_EXCL.  Set before doing the final step of pathname\nresolution on the paths that have LOOKUP_CREATE and O_EXCL.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "52c6738b7f46255217942062dfa60daa7cf72510",
      "tree": "9fa9fcdef7b44f6d71e5bb5de0e248a368808cc1",
      "parents": [
        "3b72e4415438538c0967fd1aee930f688ccdf6dd",
        "ec9a05c94c7cd00b4f0ab126c3d394f2fc2e4712"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 09:39:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 09:39:20 2008 -0700"
      },
      "message": "Merge git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* git://git.linux-nfs.org/projects/trondmy/nfs-2.6:\n  NFS: use correct fs type for v4 submounts and referrals\n  Make nfs_file_cred more robust.\n  NFS: Enable NFSv4 callback server to listen on AF_INET6 sockets\n"
    },
    {
      "commit": "4f98a2fee8acdb4ac84545df98cccecfd130f8db",
      "tree": "035a2937f4c3e2f7b4269412041c073ac646937c",
      "parents": [
        "b2e185384f534781fd22f5ce170b2ad26f97df70"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:32 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: split LRU lists into anon \u0026 file sets\n\nSplit the LRU lists in two, one set for pages that are backed by real file\nsystems (\"file\") and one for pages that are backed by memory and swap\n(\"anon\").  The latter includes tmpfs.\n\nThe advantage of doing this is that the VM will not have to scan over lots\nof anonymous pages (which we generally do not want to swap out), just to\nfind the page cache pages that it should evict.\n\nThis patch has the infrastructure and a basic policy to balance how much\nwe scan the anon lists and how much we scan the file lists.  The big\npolicy changes are in separate patches.\n\n[lee.schermerhorn@hp.com: collect lru meminfo statistics from correct offset]\n[kosaki.motohiro@jp.fujitsu.com: prevent incorrect oom under split_lru]\n[kosaki.motohiro@jp.fujitsu.com: fix pagevec_move_tail() doesn\u0027t treat unevictable page]\n[hugh@veritas.com: memcg swapbacked pages active]\n[hugh@veritas.com: splitlru: BDI_CAP_SWAP_BACKED]\n[akpm@linux-foundation.org: fix /proc/vmstat units]\n[nishimura@mxp.nes.nec.co.jp: memcg: fix handling of shmem migration]\n[kosaki.motohiro@jp.fujitsu.com: adjust Quicklists field of /proc/meminfo]\n[kosaki.motohiro@jp.fujitsu.com: fix style issue of get_scan_ratio()]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ec9a05c94c7cd00b4f0ab126c3d394f2fc2e4712",
      "tree": "344519a61b8097dafb9af0e362b10a53153de3ef",
      "parents": [
        "504e518953a330c8d44a95bdd65a5c9f50f1012e"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@netapp.com",
        "time": "Fri Oct 17 10:44:37 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 17 13:06:48 2008 -0400"
      },
      "message": "NFS: use correct fs type for v4 submounts and referrals\n\nSigned-off-by: Andy Adamson\u003candros@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "504e518953a330c8d44a95bdd65a5c9f50f1012e",
      "tree": "383df8cd12bebecd9bcf7714b6d8b07324a6353f",
      "parents": [
        "18de9735300756e3ca9c361ef58409d8561dfe0d"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Thu Oct 16 14:15:16 2008 +1100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 17 13:06:45 2008 -0400"
      },
      "message": "Make nfs_file_cred more robust.\n\nAs not all files have an associated open_context (e.g. device special\nfiles), it is safest to test for the existence of the open context\nbefore de-referencing it.\n\nSigned-off-by: NeilBrown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "18de9735300756e3ca9c361ef58409d8561dfe0d",
      "tree": "5222cb1952b6de6d3b36576384026a7c2f4c0395",
      "parents": [
        "2e532d68a2b3e2aa6b19731501222069735c741c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Oct 16 17:41:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 17 13:06:41 2008 -0400"
      },
      "message": "NFS: Enable NFSv4 callback server to listen on AF_INET6 sockets\n\nAllow the NFS callback server to listen for requests via an AF_INET6 or\nAF_INET socket when IPv6 support is present in the kernel.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6925bac120097b823fc990c143b9789c21cc60b5",
      "tree": "0f92e1b22122fba623aeff4c271c16df673244eb",
      "parents": [
        "04ab591808565f968d4406f6435090ad671ebdab",
        "011935a0a710c20bb7ae63523b78856848db1926"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 15 15:54:56 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Oct 15 15:54:56 2008 -0400"
      },
      "message": "Merge branch \u0027next\u0027\n"
    },
    {
      "commit": "011935a0a710c20bb7ae63523b78856848db1926",
      "tree": "aabfb595ce38eabd95ae1f79546d604aba663b7d",
      "parents": [
        "4704f0e274829e3af00737d2d9adace2d71a9605"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:24:50 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:24:50 2008 -0400"
      },
      "message": "NFS: Fix a resolution problem with nfs_inode-\u003ecache_change_attribute\n\nThe cache_change_attribute is used to decide whether or not a directory has\nchanged, in which case we may need to look it up again. Again, the use of\n\u0027jiffies\u0027 leads to an issue of resolution.\n\nOnce again, the fix is to change nfs_inode-\u003ecache_change_attribute, and\njust make it a simple counter.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4704f0e274829e3af00737d2d9adace2d71a9605",
      "tree": "048404f927dc210f1d7c695cb39e28e4e7d49030",
      "parents": [
        "921615f111108258820226a3258a047d9bf1d96a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:16:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:23:17 2008 -0400"
      },
      "message": "NFS: Fix the resolution problem with nfs_inode_attrs_need_update()\n\nIt appears that \u0027jiffies\u0027 timestamps do not have high enough resolution for\nnfs_inode_attrs_need_update(). One problem is that a GETATTR can be\nlaunched within \u003c 1 jiffy of the last operation that updated the attribute.\nAnother problem is that RPC calls can take \u003c 1 jiffy to execute.\n\nWe can fix this by switching the variables to use a simple global counter\nthat gets incremented every time we start another GETATTR call.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "921615f111108258820226a3258a047d9bf1d96a",
      "tree": "c78cd59a6b5c2eed79f6f9fa28498996f7147c33",
      "parents": [
        "c055551e97e1ca00781bc41523f829e05a8afed7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:23:07 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 14 19:23:07 2008 -0400"
      },
      "message": "NFS: Changes to inode-\u003ei_nlinks must set the NFS_INO_INVALID_ATTR flag\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8acd3a60bcca17c6d89c73cee3ad6057eb83ba1e",
      "tree": "d610c8d39246c33c499ee9d92d302d3ca9e89ae3",
      "parents": [
        "c269bc00fcb876ae3b85f178f1e34601185c8ccc",
        "107e0008dfb8bd6366bc8827f5bbbc0c1f795d2d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 14 12:31:14 2008 -0700"
      },
      "message": "Merge branch \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.28\u0027 of git://linux-nfs.org/~bfields/linux: (59 commits)\n  svcrdma: Fix IRD/ORD polarity\n  svcrdma: Update svc_rdma_send_error to use DMA LKEY\n  svcrdma: Modify the RPC reply path to use FRMR when available\n  svcrdma: Modify the RPC recv path to use FRMR when available\n  svcrdma: Add support to svc_rdma_send to handle chained WR\n  svcrdma: Modify post recv path to use local dma key\n  svcrdma: Add a service to register a Fast Reg MR with the device\n  svcrdma: Query device for Fast Reg support during connection setup\n  svcrdma: Add FRMR get/put services\n  NLM: Remove unused argument from svc_addsock() function\n  NLM: Remove \"proto\" argument from lockd_up()\n  NLM: Always start both UDP and TCP listeners\n  lockd: Remove unused fields in the nlm_reboot structure\n  lockd: Add helper to sanity check incoming NOTIFY requests\n  lockd: change nlmclnt_grant() to take a \"struct sockaddr *\"\n  lockd: Adjust nlmsvc_lookup_host() to accomodate AF_INET6 addresses\n  lockd: Adjust nlmclnt_lookup_host() signature to accomodate non-AF_INET\n  lockd: Support non-AF_INET addresses in nlm_lookup_host()\n  NLM: Convert nlm_lookup_host() to use a single argument\n  svcrdma: Add Fast Reg MR Data Types\n  ...\n"
    },
    {
      "commit": "a447c0932445f92ce6f4c1bd020f62c5097a7842",
      "tree": "bacf05bc7f9764515cdd6f7dc5e2254776b4f160",
      "parents": [
        "54cebc68c81eacac41a21bdfe99dc889d3882c60"
      ],
      "author": {
        "name": "Steven Whitehouse",
        "email": "swhiteho@redhat.com",
        "time": "Mon Oct 13 10:46:57 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 13 10:10:37 2008 -0700"
      },
      "message": "vfs: Use const for kernel parser table\n\nThis is a much better version of a previous patch to make the parser\ntables constant. Rather than changing the typedef, we put the \"const\" in\nall the various places where its required, allowing the __initconst\nexception for nfsroot which was the cause of the previous trouble.\n\nThis was posted for review some time ago and I believe its been in -mm\nsince then.\n\nSigned-off-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Alexander Viro \u003caviro@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e2e7721f04c11e6dc4a74b33f05a0e1c0381e2e",
      "tree": "2eaa3154bae5232012e1f1aa8fd7f59f98f9a7e5",
      "parents": [
        "456018d791ff4ef03d610f72486c637056bcd749"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Oct 08 15:38:10 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 14:41:51 2008 -0400"
      },
      "message": "NFS: fix nfs_parse_ip_address() corner case\n\nBruce observed that nfs_parse_ip_address() will successfully parse an\nIPv6 address that looks like this:\n\n  \"::1%\"\n\nA scope delimiter is present, but there is no scope ID following it.\nThis is harmless, as it would simply set the scope ID to zero.  However,\nin some cases we would like to flag this as an improperly formed\naddress.\n\nWe are now also careful to reject addresses where garbage follows the\naddress (up to the length of the string), instead of ignoring the\nnon-address characters; and where the scope ID is nonsense (not a valid\ndevice name, but also not numeric).  Before, both of these cases would\nresult in a harmless zero scope ID.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "456018d791ff4ef03d610f72486c637056bcd749",
      "tree": "c278b69dc731a048e3c5a1d350b0d74611fcb791",
      "parents": [
        "03254e65a60d3113164672dbbadc023c4a56ecd1"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Oct 08 15:31:14 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 10 14:41:50 2008 -0400"
      },
      "message": "NFS: Cleanup nfs_set_port\n\nSigned-off-by: \"J. Bruce Fields\" \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03254e65a60d3113164672dbbadc023c4a56ecd1",
      "tree": "789d1e66b9af896ad113009dd1a4e3ced0c4ca4d",
      "parents": [
        "19d771f3caccaf66ce2fb539319222139e5b4e88"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 09 13:27:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 09 13:34:07 2008 -0400"
      },
      "message": "NFS: Fix attribute updates\n\nThis fixes a regression seen when running the Connectathon testsuite\nagainst an ext3 filesystem. The reason was that the inode was constantly\nbeing marked as \u0027just updated\u0027 by the jiffy wraparound test.\nThis again meant that newer GETATTR calls were failing to pass the\nnfs_inode_attrs_need_update() test unless the changes caused a ctime update\non the server, since they were perceived as having been started before the\nlatest inode update.\n\nGiven that nfs_inode_attrs_need_update() already checks for wraparound\nof nfsi-\u003elast_updated, we can drop the buggy \"protection\" in\nnfs_update_inode().\n\nAlso make a slight micro-optimisation of nfs_inode_attrs_need_update(): we\nare more often going to see time_after(fattr-\u003etime_start, nfsi-\u003elast_updated)\nbe true, rather than seeing an update of ctime/size, so put that test\nfirst to ensure that we optimise away the ctime/size tests.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d7fb120774f062ce7db439863ab5d4190d6f989c",
      "tree": "621ce0a776c3bc4b66d0cea87e06f6ea7ed79398",
      "parents": [
        "8491945f11c227400ef294d560f6d7aace76bc33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 06 20:08:56 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:19:05 2008 -0400"
      },
      "message": "NFS: Don\u0027t use range_cyclic for data integrity syncs\n\nIt is more efficient to write linearly starting from the beginning of the\nfile.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8491945f11c227400ef294d560f6d7aace76bc33",
      "tree": "8bd90b815407a5dba31e3a576cc0c711d32a5f94",
      "parents": [
        "96165e2b7c4e2c82a0b60c766d4a2036444c21a0"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "SteveD@redhat.com",
        "time": "Fri Apr 11 20:03:06 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:19:01 2008 -0400"
      },
      "message": "NFS: Client mounts hang when exported directory do not exist\n\nThis patch fixes a regression that was introduced by the string based mounts.\n\nnfs_mount() statically returns -EACCES for every error returned\nby the remote mounted. This is incorrect because -EACCES is\nan non-fatal error to the mount.nfs command. This error causes\nmount.nfs to retry the mount even in the case when the exported\ndirectory does not exist.\n\nThis patch maps the errors returned by the remote mountd into\nvalid errno values, exactly how it was done pre-string based\nmounts. By returning the correct errno enables mount.nfs\nto do the right thing.\n\nSigned-off-by: Steve Dickson \u003csteved@redhat.com\u003e\n[Trond.Myklebust@netapp.com: nfs_stat_to_errno() now correctly returns\n negative errors, so remove the sign change.]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ea31a4437c59219bf3ea946d58984b01a45a289c",
      "tree": "d386f91c39461c7505e614f0b281f0e7e9b99298",
      "parents": [
        "f0c929251e01a7a86b6254c775cb6b65c6457f10"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Aug 20 16:10:23 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:17:47 2008 -0400"
      },
      "message": "nfs: Fix misparsing of nfsv4 fs_locations attribute\n\nThe code incorrectly assumes here that the server name (or ip address)\nis null-terminated.  This can cause referrals to fail in some cases.\n\nAlso support ipv6 addresses.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0c929251e01a7a86b6254c775cb6b65c6457f10",
      "tree": "18016ca1cffa8ab1bbe2c064bbf76bba443d8b78",
      "parents": [
        "460cdbc83268dd9641b57d893b03ef52fcc3f96d"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Aug 20 16:10:22 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:17:36 2008 -0400"
      },
      "message": "nfs: prepare to share nfs_set_port\n\nWe plan to use this function elsewhere.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "460cdbc83268dd9641b57d893b03ef52fcc3f96d",
      "tree": "400fefcd6e9e481c9ae7481f4483e7f86face8f7",
      "parents": [
        "4ada29d5c4dd2d3ba89510bdbc64be22961fd1cb"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Aug 20 16:10:21 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:17:20 2008 -0400"
      },
      "message": "nfs: replace while loop by for loops in nfs_follow_referral\n\nWhoever wrote this had a bizarre allergy to for loops.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ada29d5c4dd2d3ba89510bdbc64be22961fd1cb",
      "tree": "a7071caea0b46f154f14010d9a9fbef941b86467",
      "parents": [
        "37ca8f5c6041516aac603a5abb89b05675493802"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Aug 20 16:10:20 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:16:40 2008 -0400"
      },
      "message": "nfs: break up nfs_follow_referral\n\nThis function is a little longer and more deeply nested than necessary.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "37ca8f5c6041516aac603a5abb89b05675493802",
      "tree": "5beea95e09c90fb591e92d40b052997d98821fda",
      "parents": [
        "f25b874d39461935b1b5bbffaa622e735e79d49e"
      ],
      "author": {
        "name": "EG Keizer",
        "email": "keie@few.vu.nl",
        "time": "Tue Aug 19 16:34:36 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:16:22 2008 -0400"
      },
      "message": "nfs: authenticated deep mounting\n\nAllow mount to do authenticated mounts below the root of the exported tree.\nThe wording in RFC 2623, sec 2.3.2. allows fsinfo with UNIX authentication\non the root of the export. Mounts are not always done on the root\nof the exported tree. Especially autoumounts often mount below the root of\nthe exported tree.\nSome server implementations (justly) require full authentication for the\nso-called deep mounts. The old code used AUTH_SYS only. This caused deep\nmounts to fail on systems requiring stronger authentication..\nThe client should try both authentication types and use the first one that\nsucceeds.\nThis method was already partially implemented. This patch completes\nthe implementation for NFS2 and NFS3.\nThis patch was developed to allow Debian systems to automount home directories\non Solaris servers with krb5 authentication.\n\nTested on kernel 2.6.24-etchnhalf.1\n\nSigned-off-by: E.G. Keizer \u003ckeie@few.vu.nl\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f25b874d39461935b1b5bbffaa622e735e79d49e",
      "tree": "6b2b31a20591c538c0e35e15cd53ceb2efee4524",
      "parents": [
        "f200c11c257b8db5c49dfc0b7f84bceae3109779"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Mon Aug 18 09:17:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:16:22 2008 -0400"
      },
      "message": "NFS: missing nfs_fattr_init in nfs3_proc_getacl and nfs3_proc_setacls (resend #2)\n\nThe fattrs used in the NFSv3 getacl/setacl calls are not being properly\ninitialized. This occasionally causes nfs_update_inode to fall into\nNFSv4 specific codepaths when handling post-op attrs from these calls.\n\nThanks to Cai Qian for noticing the spurious NFSv4 messages in debug\noutput from a v3 mount...\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f200c11c257b8db5c49dfc0b7f84bceae3109779",
      "tree": "ade25b51f12ee12ad4f58dd7020264e7ff695426",
      "parents": [
        "44d5759d3fdad660f000ef319f0ec33a6ac6ae28"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Thu Aug 14 18:32:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:16:21 2008 -0400"
      },
      "message": "nfs: remove an obsolete nfs_flock comment\n\nWe *do* now allow bsd flocks over nfs.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44d5759d3fdad660f000ef319f0ec33a6ac6ae28",
      "tree": "2d6508f919c21a3f25254567d88606438f339c38",
      "parents": [
        "c9f6cde6e26ef98ee9c4b6288b126ac9c580d88b"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Mon Aug 11 12:02:34 2008 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:15:16 2008 -0400"
      },
      "message": "nfs: BUG_ON in nfs_follow_mountpoint\n\nUnfortunately, BUG_ON(IS_ROOT(dentry)) can happen inside\nnfs_follow_mountpoint with NFS running Fedora 8 using a\nspecific setup.\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d458622\n\nSo, the situation should be handled on NFS client gracefully.\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nCC: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCC: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fd08d7e9d196ca49afcce0181f1f0ca68f241aa2",
      "tree": "445a2d883332274b3ec01c6cf30f840a6d1d4d9b",
      "parents": [
        "bb8a3b53c20f2c07164a23ff6c320794fee8b95f"
      ],
      "author": {
        "name": "Denis V. Lunev",
        "email": "den@openvz.org",
        "time": "Thu Jul 31 09:38:55 2008 +0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 18:14:34 2008 -0400"
      },
      "message": "nfs: ERR_PTR is expected on failure from nfs_do_clone_mount\n\nReplace NULL with ERR_PTR(-EINVAL).\n\nSigned-off-by: Denis V. Lunev \u003cden@openvz.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bb8a3b53c20f2c07164a23ff6c320794fee8b95f",
      "tree": "5bdea648d480ab297dd0967fcbbaf1c4e26f0b8d",
      "parents": [
        "691beb13cdc88358334ef0ba867c080a247a760f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 02:55:49 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:59:49 2008 -0400"
      },
      "message": "fix fs/nfs/nfsroot.c compilation\n\nThis patch fixes the following compile error caused by\ncommit f9247273cb69ba101877e946d2d83044409cc8c5\n(UFS: add const to parser token tabl):\n\n\u003c--  snip  --\u003e\n\n...\n  CC      fs/nfs/nfsroot.o\n/home/bunk/linux/kernel-2.6/git/linux-2.6/fs/nfs/nfsroot.c:130: error: tokens causes a section type conflict\nmake[3]: *** [fs/nfs/nfsroot.o] Error 1\n\n\u003c--  snip  --\u003e\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "691beb13cdc88358334ef0ba867c080a247a760f",
      "tree": "35e0bb75f726f32962418902f33c5f779711dddc",
      "parents": [
        "2f28ea614ff497202d5a52af82da523ae4a20718"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 05 14:48:22 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:59:43 2008 -0400"
      },
      "message": "NFS: Allow concurrent inode revalidation\n\nCurrently, if two processes are both trying to revalidate metadata for the\nsame inode, they will find themselves being serialised. There is no good\njustification for this now that we have improved our ability to detect\nstale attribute data, so we should remove that serialisation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2f28ea614ff497202d5a52af82da523ae4a20718",
      "tree": "9793e6d84b4d33fbd552b377e0b4e12a21484794",
      "parents": [
        "076f1fc94c44be2664172c63b4a2b51ae2d265ea"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 05 14:26:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:41:46 2008 -0400"
      },
      "message": "NFS: Fix up nfs_setattr_update_inode()\n\nEnsure that it sets the inode metadata under the correct spinlock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "076f1fc94c44be2664172c63b4a2b51ae2d265ea",
      "tree": "a2b0c6b28deb0d283ff754df90801cc1483ec41d",
      "parents": [
        "4dc05efb86239321d43a9d74fd2ecd5c21bfc2ad"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 05 13:31:21 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:41:33 2008 -0400"
      },
      "message": "NFS: Don\u0027t clear nfsi-\u003ecache_validity in nfs_check_inode_attributes()\n\nIf we\u0027re merely checking the inode attributes because we suspect that the\n\u0027updated\u0027 attributes returned by the RPC call are stale, then we shouldn\u0027t\nbe doing weak cache consistency updates or clearing the cache_validity\nflags.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4dc05efb86239321d43a9d74fd2ecd5c21bfc2ad",
      "tree": "3075ff7f73fd2cd85d2fcf055ec201e9ffac1cff",
      "parents": [
        "d65f557f39448c2d9e58cd564037b81e646aed2c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 23 17:28:42 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:41:17 2008 -0400"
      },
      "message": "NFS: Convert __nfs_revalidate_inode() to use nfs_refresh_inode()\n\nIn the case where there are parallel RPC calls to the same inode, we may\nreceive stale metadata due to the lack of ordering, hence the sanity\nchecking of metadata in nfs_refresh_inode().\nCurrently, __nfs_revalidate_inode() is calling nfs_update_inode() directly,\nwithout any further sanity checks, and hence may end up setting the inode\nup with stale metadata.\n\nFix is to use nfs_refresh_inode() instead of nfs_update_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d65f557f39448c2d9e58cd564037b81e646aed2c",
      "tree": "8837231b55453405e40b2b8bd22470f3314cfa11",
      "parents": [
        "a10ad17630024bf7aae8e7f18352f816ee483091"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 05 12:27:55 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:41:00 2008 -0400"
      },
      "message": "NFS: Fix nfs_post_op_update_inode_force_wcc()\n\nIf we believe that the attributes are old (see nfs_refresh_inode()), then\nwe shouldn\u0027t force an update.\nAlso ensure that we hold the inode-\u003ei_lock across attribute checks and the\ncall to nfs_refresh_inode_locked() to ensure that we don\u0027t race with other\nattribute updates.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a10ad17630024bf7aae8e7f18352f816ee483091",
      "tree": "a290be6e6660766ceac3d06f022d2bc5d15a1602",
      "parents": [
        "870a5be8b92151332da65021b7b21104e9c1de07"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 23 17:28:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:34:17 2008 -0400"
      },
      "message": "NFS: Fix the NFS attribute update\n\nCurrently nfs_refresh_inode() will only update the inode metadata if it\nsees that the RPC call that returned the nfs_fattr was started\nafter the last update of the inode. This means that if we have parallel\nRPC calls to the same inode (when sending WRITE calls, for instance), we\nmay often miss updates.\n\nThis patch attempts to recover those missed updates by also accepting\nthem if the ctime in the nfs_fattr is more recent than the inode\u0027s\ncached ctime.\nIt also recovers the case where the file size has increased, but the\nctime has not been updated due to limited ctime resolution.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "870a5be8b92151332da65021b7b21104e9c1de07",
      "tree": "041ec4a0c5304ff74b7b1cd2c09a7d92e08d6cac",
      "parents": [
        "7973c1f15a0687f47ed70e591e4642d6fc4334d0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 05 12:07:23 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:29:49 2008 -0400"
      },
      "message": "NFS: Clean up nfs_refresh_inode() and nfs_post_op_update_inode()\n\nTry to avoid taking and dropping the inode-\u003ei_lock more than once. Do so by\nmoving the code in nfs_refresh_inode() that needs to be done under the\nspinlock into a function nfs_refresh_inode_locked(), and then having both\nnfs_refresh_inode() and nfs_post_op_update_inode() call it directly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7973c1f15a0687f47ed70e591e4642d6fc4334d0",
      "tree": "543ea6ca6b2217bf873c4a891aec9eab5dd50fab",
      "parents": [
        "ff3525a539f5cc81970d08304bdedb4ffba984da"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 17:58:14 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:23:57 2008 -0400"
      },
      "message": "NFS: Add mount options for controlling the lookup cache\n\nAdd the following NFS-specific mount options to the parser.\n\n    -o lookupcache\u003dall          /* Default: cache positive \u0026 negative\n                                   dentries */\n    -o lookupcache\u003dpos[itive]   /* Don\u0027t cache negative dentries */\n    -o lookupcache\u003dnone         /* Strict revalidation of all dentries */\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff3525a539f5cc81970d08304bdedb4ffba984da",
      "tree": "ec1595221de085b7f9527ad99652ca51ed3f9512",
      "parents": [
        "4eec952e42314b53e48fef1f54dd89cbf9789734"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 15 16:59:14 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:23:56 2008 -0400"
      },
      "message": "NFS: Don\u0027t apply NFS_MOUNT_FLAGMASK to text-based mounts\n\nThe point of introducing text-based mounts was to allow us to add\nfunctionality without having to worry about legacy binary mount formats.\nThe mask should be there in order to ensure that binary formats don\u0027t start\nenabling features that they cannot support. There is no justification for\napplying it to the text mount path.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4eec952e42314b53e48fef1f54dd89cbf9789734",
      "tree": "6c0e407472224954987021a815036fe561f88c5a",
      "parents": [
        "1daef0a868370c5a96d031b9202e3354bea060e6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 17:58:13 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 07 17:22:20 2008 -0400"
      },
      "message": "NFS: Add options for finer control of the lookup cache\n\nAdd the flag NFS_MOUNT_LOOKUP_CACHE_NONEG to turn off the caching of\nnegative dentries. In reality what we do is to force\nnfs_lookup_revalidate() to always discard negative dentries.\n\nAdd the flag NFS_MOUNT_LOOKUP_CACHE_NONE for enforcing stricter\nrevalidation of dentries. It forces the revalidate code to always do a\nlookup instead of just checking the cached mtime of the parent directory.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1daef0a868370c5a96d031b9202e3354bea060e6",
      "tree": "a072a8486c67f3d26b576e5bace8aa45def2d328",
      "parents": [
        "d5e66348bbe39dc78509e7561f7252aa443df8c0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 27 18:19:01 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 06 20:08:26 2008 -0400"
      },
      "message": "NFS: Clean up nfs_sb_active/nfs_sb_deactive\n\nInstead of causing umount requests to block on server-\u003eactive_wq while the\nasynchronous sillyrename deletes are executing, we can use the sb-\u003es_active\ncounter to obtain a reference to the super_block, and then release that\nreference in nfs_async_unlink_release().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5e66348bbe39dc78509e7561f7252aa443df8c0",
      "tree": "7e67858cbc6968d39c17e55499d11d24a958cdab",
      "parents": [
        "4330ed8ed4da360ac1ca14b0fddff4c05b10de16"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 23 17:28:35 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 06 20:08:26 2008 -0400"
      },
      "message": "NFS: Fix nfs_file_llseek()\n\nAfter the BKL removal patches were applied to the rest of the NFS code, the\nBKL protection in nfs_file_llseek() is no longer sufficient to ensure that\ninode-\u003ei_size is read safely in generic_file_llseek_unlocked().\n\nIn order to fix the situation, we either have to replace the naked read of\ninode-\u003ei_size in generic_file_llseek_unlocked() with i_size_read(), or the\nwhole thing needs to be executed under the inode-\u003ei_lock;\nIn order to avoid disrupting other filesystems, avoid touching\ngeneric_file_llseek_unlocked() for now...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e851db5b05408b89b9a9429a66814b79fabee2a1",
      "tree": "99bac979ed90efed99c89a49cb77719ab4c0a229",
      "parents": [
        "72d31053f62c4bc464c2783974926969614a8649"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 30 18:45:30 2008 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Mon Sep 29 17:56:56 2008 -0400"
      },
      "message": "SUNRPC: Add address family field to svc_serv data structure\n\nIntroduce and initialize an address family field in the svc_serv structure.\n\nThis field will determine what family to use for the service\u0027s listener\nsockets and what families are advertised via the local rpcbind daemon.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n"
    },
    {
      "commit": "af904deaf6da3f3285eb0a06a3dc6a1af0251030",
      "tree": "ad0f0eef5824d22e1fa6ca79f45bc3b59c19985a",
      "parents": [
        "7686ad5606f08d9dfb33a2087a36c8366366015b"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Sep 08 11:58:13 2008 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 08 15:35:19 2008 -0700"
      },
      "message": "NFS: Restore missing hunk in NFS mount option parser\n\nAutomounter maps can contain mount options valid for other NFS\nimplementations but not for Linux.  The Linux automounter uses the\nmount command\u0027s \"-s\" command line option (\"s\" for \"sloppy\") so that\nmount requests containing such options are not rejected.\n\nCommit f45663ce5fb30f76a3414ab3ac69f4dd320e760a attempted to address a\nknown regression with text-based NFS mount option parsing.  Unrecognized\nmount options would cause mount requests to fail, even if the \"-s\"\noption was used on the mount command line.\n\nUnfortunately, this commit was not complete as submitted.  It adds a\nnew mount option, \"sloppy\".  But it is missing a hunk, so it now allows\nNFS mounts with unrecognized mount options, even if the \"sloppy\" option\nis not present.  This could be a problem if a required critical mount\noption such as \"sync\" is misspelled, for example, and is considered a\nregression from 2.6.26.\n\nThis patch restores the missing hunk.  Now, the default behavior of\ntext-based NFS mount options is as before: any unrecognized mount option\nwill cause the mount to fail.\n\nPlease include this in 2.6.27-rc.\n\nThanks to Neil Brown for reporting this.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nAcked-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a3f7d98e5f50f21ce6fb1406a35531d9596c5c6",
      "tree": "c08708cd17f163f18c149133c92551f83249fd98",
      "parents": [
        "fca082c9f1e11ec07efa8d2f9f13688521253f36"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 16:50:38 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 04 16:50:38 2008 -0700"
      },
      "message": "Revert \"UFS: add const to parser token table\"\n\nThis reverts commit f9247273cb69ba101877e946d2d83044409cc8c5 (and\nfb2e405fc1fc8b20d9c78eaa1c7fd5a297efde43 - \"fix fs/nfs/nfsroot.c\ncompilation\" - that fixed a missed conversion).\n\nThe changes cause problems for at least the sparc build.  Let\u0027s re-do\nthem when the exact issues are resolved.\n\nRequested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nRequested-by: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d66bf5481002b0960aa49aed0987c73f5d7816c",
      "tree": "7beac720e1df882a1cd4d6d09e6ac25ddd04b399",
      "parents": [
        "d5686b444ff3f72808d2b3fbd58672a86cdf38e7"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 09:05:54 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Aug 01 11:25:32 2008 -0400"
      },
      "message": "[PATCH] pass struct path * to do_add_mount()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "744d18dbfae07482ea461701b0aaec3a75ec9224",
      "tree": "53246e5fd448ebf21d8ce9c9fa973995166d985e",
      "parents": [
        "31c9446993f412ecb7875e30bba4bc7f216ae016"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 27 18:03:19 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 27 18:20:51 2008 -0400"
      },
      "message": "NFS: Ensure we call nfs_sb_deactive() after releasing the directory inode\n\nIn order to avoid the \"Busy inodes after unmount\" error message, we need to\nensure that nfs_async_unlink_release() releases the super block after the\ncall to nfs_free_unlinkdata().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "31c9446993f412ecb7875e30bba4bc7f216ae016",
      "tree": "4c68f0d6c7c5e47f899c1068004a84935bdbc962",
      "parents": [
        "837b41b5de356aa67abb2cadb5eef3efc7776f91"
      ],
      "author": {
        "name": "Marc Zyngier",
        "email": "maz@misterjones.org",
        "time": "Thu Jul 17 13:21:55 2008 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jul 27 18:20:41 2008 -0400"
      },
      "message": "nfs_remount oops when rebooting + possible fix\n\nJeff, Trond,\n\nThe commit\n\n48b605f83c920d8daa50e43fc2c7f718e04c7bfa (NFS: implement option checking\nwhen remounting NFS filesystems (resend))\n\ngenerate an Oops on my platform when rebooting while its root FS on\nan NFS share (NFSv3, TCP) :\n\nUnmounting local filesystems...done.\nUnable to handle kernel NULL pointer dereference at virtual address 00000000\npgd \u003d c3d00000\n[00000000] *pgd\u003da3d72031, *pte\u003d00000000, *ppte\u003d00000000\nInternal error: Oops: 17 [#1]\nModules linked in: cpufreq_powersave cpufreq_ondemand cpufreq_userspace cpufreq_conservative ext3 jbd sd_mod pata_pcmcia libata scsi_mod pcmcia loop firmware_class pxafb cfbcopyarea cfbimgblt cfbfillrect pxa2xx_cs pxa2xx_core pcmcia_core snd_pxa2xx_ac97 snd_ac97_codec ac97_bus snd_pxa2xx_pcm snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd isp116x_hcd soundcore rtc_sa1100 snd_page_alloc pxa25x_udc usbcore rtc_ds1307 rtc_core\nCPU: 0    Not tainted  (2.6.26-03414-g33af79d-dirty #15)\nPC is at nfs_remount+0x40/0x264\nLR is at do_remount_sb+0x158/0x194\npc : [\u003cc00bbf54\u003e]    lr : [\u003cc0076c40\u003e]    psr: 60000013\nsp : c2dd1e70  ip : c2dd1e98  fp : c2dd1e94\nr10: 00000040  r9 : c3d17000  r8 : c3c3fc40\nr7 : 00000000  r6 : 00000000  r5 : c3d2b200  r4 : 00000000\nr3 : 00000003  r2 : 00000000  r1 : c2dd1e9c  r0 : c3c3fc00\nFlags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user\nControl: 0000397f  Table: a3d00000  DAC: 00000015\nProcess mount (pid: 1462, stack limit \u003d 0xc2dd0270)\nStack: (0xc2dd1e70 to 0xc2dd2000)\n1e60:                                     00000000 c3c3fc00 00000000 00000000\n1e80: c3c3fc40 c3d17000 c2dd1ebc c2dd1e98 c0076c40 c00bbf20 c01c61e4 00000001\n1ea0: c2dd1ebc 00000001 c3c3fc00 c2dd1ef0 c2dd1ee4 c2dd1ec0 c008c6d8 c0076af4\n1ec0: 00000021 00000040 c2dd1ef0 c3d77000 c3eaa000 00000000 c2dd1f6c c2dd1ee8\n1ee0: c008d1bc c008c5f8 00000000 c2dd0000 c3c0c320 c3805b38 c002064c 0001f820\n1f00: 0001f810 00000001 00000001 00000000 c2dd0000 00000000 c2dd1f34 c2dd1f28\n1f20: c005ead8 c005e6f8 c2dd1f44 c2dd1f38 c005eaf8 c005ead0 c2dd1f6c c2dd1f48\n1f40: c008ae3c 00000000 c3d77000 0001f810 c0ed0021 c0020ca8 c2dd0000 00000000\n1f60: c2dd1fa4 c2dd1f70 c008d2d4 c008d0bc 00000000 0001f810 c2dd1f9c c3eaa000\n1f80: c3d17000 00000000 00000000 be8b6aa8 be8b6ad0 00000015 00000000 c2dd1fa8\n1fa0: c0020b00 c008d254 00000000 be8b6aa8 0001f810 0001f820 0001f830 c0ed0021\n1fc0: 00000000 be8b6aa8 be8b6ad0 00000015 00000000 be8b6ad0 0001f810 be8b6aa8\n1fe0: 0001f810 be8b6964 0000aab8 40125124 60000010 0001f810 00000000 00000000\nBacktrace:\n[\u003cc00bbf14\u003e] (nfs_remount+0x0/0x264) from [\u003cc0076c40\u003e] (do_remount_sb+0x158/0x194)\n  r9:c3d17000 r8:c3c3fc40 r7:00000000 r6:00000000 r5:c3c3fc00\nr4:00000000\n[\u003cc0076ae8\u003e] (do_remount_sb+0x0/0x194) from [\u003cc008c6d8\u003e] (do_remount+0xec/0x118)\n  r6:c2dd1ef0 r5:c3c3fc00 r4:00000001\n[\u003cc008c5ec\u003e] (do_remount+0x0/0x118) from [\u003cc008d1bc\u003e] (do_mount+0x10c/0x198)\n[\u003cc008d0b0\u003e] (do_mount+0x0/0x198) from [\u003cc008d2d4\u003e] (sys_mount+0x8c/0xd4)\n[\u003cc008d248\u003e] (sys_mount+0x0/0xd4) from [\u003cc0020b00\u003e] (ret_fast_syscall+0x0/0x2c)\n  r7:00000015 r6:be8b6ad0 r5:be8b6aa8 r4:00000000\nCode: 0a000086 ea000006 e3530003 8a000004 (e5923000)\n---[ end trace 55e1b689cf8c8a6a ]---\n------------[ cut here ]------------\nWARNING: at kernel/exit.c:966 do_exit+0x3c/0x628()\nModules linked in: cpufreq_powersave cpufreq_ondemand cpufreq_userspace cpufreq_conservative ext3 jbd sd_mod pata_pcmcia libata scsi_mod pcmcia loop firmware_class pxafb cfbcopyarea cfbimgblt cfbfillrect pxa2xx_cs pxa2xx_core pcmcia_core snd_pxa2xx_ac97 snd_ac97_codec ac97_bus snd_pxa2xx_pcm snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd isp116x_hcd soundcore rtc_sa1100 snd_page_alloc pxa25x_udc usbcore rtc_ds1307 rtc_core\n[\u003cc0025168\u003e] (dump_stack+0x0/0x14) from [\u003cc0032154\u003e] (warn_on_slowpath+0x4c/0x68)\n[\u003cc0032108\u003e] (warn_on_slowpath+0x0/0x68) from [\u003cc003531c\u003e] (do_exit+0x3c/0x628)\n  r6:0000000b r5:c3c3dc80 r4:c2dd0000\n[\u003cc00352e0\u003e] (do_exit+0x0/0x628) from [\u003cc0025004\u003e] (die+0x2b0/0x30c)\n[\u003cc0024d54\u003e] (die+0x0/0x30c) from [\u003cc00270bc\u003e] (__do_kernel_fault+0x6c/0x80)\n[\u003cc0027050\u003e] (__do_kernel_fault+0x0/0x80) from [\u003cc00272e0\u003e] (do_page_fault+0x210/0x230)\n  r7:c3fa7118 r6:c3c3dc80 r5:c3d166a8 r4:00010000\n[\u003cc00270d0\u003e] (do_page_fault+0x0/0x230) from [\u003cc00201ec\u003e] (do_DataAbort+0x3c/0xa0)\n[\u003cc00201b0\u003e] (do_DataAbort+0x0/0xa0) from [\u003cc002064c\u003e] (__dabt_svc+0x4c/0x60)\nException stack(0xc2dd1e28 to 0xc2dd1e70)\n1e20:                   c3c3fc00 c2dd1e9c 00000000 00000003 00000000 c3d2b200\n1e40: 00000000 00000000 c3c3fc40 c3d17000 00000040 c2dd1e94 c2dd1e98 c2dd1e70\n1e60: c0076c40 c00bbf54 60000013 ffffffff\n  r8:c3c3fc40 r7:00000000 r6:00000000 r5:c2dd1e5c r4:ffffffff\n[\u003cc00bbf14\u003e] (nfs_remount+0x0/0x264) from [\u003cc0076c40\u003e] (do_remount_sb+0x158/0x194)\n  r9:c3d17000 r8:c3c3fc40 r7:00000000 r6:00000000 r5:c3c3fc00\nr4:00000000\n[\u003cc0076ae8\u003e] (do_remount_sb+0x0/0x194) from [\u003cc008c6d8\u003e] (do_remount+0xec/0x118)\n  r6:c2dd1ef0 r5:c3c3fc00 r4:00000001\n[\u003cc008c5ec\u003e] (do_remount+0x0/0x118) from [\u003cc008d1bc\u003e] (do_mount+0x10c/0x198)\n[\u003cc008d0b0\u003e] (do_mount+0x0/0x198) from [\u003cc008d2d4\u003e] (sys_mount+0x8c/0xd4)\n[\u003cc008d248\u003e] (sys_mount+0x0/0xd4) from [\u003cc0020b00\u003e] (ret_fast_syscall+0x0/0x2c)\n  r7:00000015 r6:be8b6ad0 r5:be8b6aa8 r4:00000000\n---[ end trace 55e1b689cf8c8a6a ]---\n/etc/rc6.d/S60umountroot: line 17:  1462 Segmentation fault      mount $MOUNT_FORCE_OPT -n -o remount,ro -t dummytype dummydev / 2\u003e /dev/null\n\nThe new super.c:nfs_remount function doesn\u0027t check the validity of the\noptions/options4 pointers. Unfortunately, this seems to happend.\nThe obvious patch seems to check the pointers, and not to do anything if\nthe happend to be NULL.\n\nTested on an XScale PXA255 system, latest git.\n\nRegards,\n\n\tM.\n\nSigned-off-by: Marc Zyngier \u003cmarc.zyngier@altran.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6305c43eda10ebfd2ad9e35d6e172ccc7bb3695",
      "tree": "8a95bd0e27fb3ce895cca9ef91af2e1605e4cdab",
      "parents": [
        "1bd5191d9f5d1928c4efdf604c4164b04bb88dbe"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 15 21:03:57 2008 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jul 26 20:53:14 2008 -0400"
      },
      "message": "[PATCH] sanitize -\u003epermission() prototype\n\n* kill nameidata * argument; map the 3 bits in -\u003eflags anybody cares\n  about to new MAY_... ones and pass with the mask.\n* kill redundant gfs2_iop_permission()\n* sanitize ecryptfs_permission()\n* fix remaining places where -\u003epermission() instances might barf on new\n  MAY_... found in mask.\n\nThe obvious next target in that direction is permission(9)\n\nfolded fix for nfs_permission() breakage from Miklos Szeredi \u003cmszeredi@suse.cz\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "51cc50685a4275c6a02653670af9f108a64e01cf",
      "tree": "819d47bd2b0c8a9d1835d863853804b0a0242b97",
      "parents": [
        "d91958815d214ea365b98cbff6215383897edcb6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Jul 25 19:45:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 26 12:00:07 2008 -0700"
      },
      "message": "SL*B: drop kmem cache argument from constructor\n\nKmem cache passed to constructor is only needed for constructors that are\nthemselves multiplexeres.  Nobody uses this \"feature\", nor does anybody uses\npassed kmem cache in non-trivial way, so pass only pointer to object.\n\nNon-trivial places are:\n\tarch/powerpc/mm/init_64.c\n\tarch/powerpc/mm/hugetlbpage.c\n\nThis is flag day, yes.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\n[akpm@linux-foundation.org: fix arch/powerpc/mm/hugetlbpage.c]\n[akpm@linux-foundation.org: fix mm/slab.c]\n[akpm@linux-foundation.org: fix ubifs]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb2e405fc1fc8b20d9c78eaa1c7fd5a297efde43",
      "tree": "b22ee51689090eea8485570a7f06aca7429eb0fa",
      "parents": [
        "4b9f12a3779c548b68bc9af7d94030868ad3aa1b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Fri Jul 25 02:55:49 2008 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 17:32:41 2008 -0700"
      },
      "message": "fix fs/nfs/nfsroot.c compilation\n\nThis fixes the following compile error caused by commit\nf9247273cb69ba101877e946d2d83044409cc8c5 (\"UFS: add const to parser\ntoken table\"):\n\n    CC      fs/nfs/nfsroot.o\n  /home/bunk/linux/kernel-2.6/git/linux-2.6/fs/nfs/nfsroot.c:130: error: tokens causes a section type conflict\n  make[3]: *** [fs/nfs/nfsroot.o] Error 1\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cadc723cc19ce6b881d973d3c04e25ebb83058e6",
      "tree": "9256b4bc0685bca22469eab87cd3ec3c2deba60d",
      "parents": [
        "e89e896d31b11a51a54ddcd3f72a76bd286dd86c",
        "f839c4c1991cc9b580ae38f98f54554938a7f49c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:58 2008 -0400"
      },
      "message": "Merge branch \u0027bkl-removal\u0027 into next\n"
    },
    {
      "commit": "e89e896d31b11a51a54ddcd3f72a76bd286dd86c",
      "tree": "105a9a93a4021caeeba76e479778ad2dd2b87b57",
      "parents": [
        "3a628b0fd42f7eaf9d052447784d48ceae9ffb8e",
        "d67d1c7bf948341fd8678c8e337ec27f4b46b206"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:16 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:34:16 2008 -0400"
      },
      "message": "Merge branch \u0027devel\u0027 into next\n\nConflicts:\n\n\tfs/nfs/file.c\n\nFix up the conflict with Jon Corbet\u0027s bkl-removal tree\n"
    },
    {
      "commit": "f839c4c1991cc9b580ae38f98f54554938a7f49c",
      "tree": "f31d02b9e63c2042d0750133dbaec368a63fb628",
      "parents": [
        "a86dc496b764ebb1431677b38eab45310e5a2ad4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:26 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:57 2008 -0400"
      },
      "message": "NFSv4: Remove BKL from the nfsv4 state recovery\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c3cc8c019ca09767d7c9b5457d5cf8ac65085f44",
      "tree": "f06f3ec2e30994018b31da44ee81b8306b00af75",
      "parents": [
        "76566991f94c206d9c5881edcaf99ba72c9e9d61"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:23 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:56 2008 -0400"
      },
      "message": "NFS: Remove BKL from the readdir code\n\nPage accesses are serialised using the page locks, whereas all attribute\nupdates are serialised using the inode-\u003ei_lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "76566991f94c206d9c5881edcaf99ba72c9e9d61",
      "tree": "ed7ec44c59ae916639c1b775ac67cefa229b7e65",
      "parents": [
        "52e2e8d37e01edf38ccdccc983fb13ec1456d63d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:22 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:56 2008 -0400"
      },
      "message": "NFS: Remove BKL from the symlink code\n\nPage cache accesses are serialised using page locks, whereas attribute\nupdates are serialised using inode-\u003ei_lock.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52e2e8d37e01edf38ccdccc983fb13ec1456d63d",
      "tree": "06f43fde01ae679fb2d29a343eef4531e34de015",
      "parents": [
        "bd9bb454b76fb6ca2d00f17313f9f9df5f5c404a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:21 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:55 2008 -0400"
      },
      "message": "NFS: Remove BKL from the sillydelete operations\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd9bb454b76fb6ca2d00f17313f9f9df5f5c404a",
      "tree": "e5e0a7440552eca9e02a60e03c394ac0e91b76ab",
      "parents": [
        "fc0f684c21b5d4b41dc2ec76f7c0897ac98f5b6e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 16:09:59 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:55 2008 -0400"
      },
      "message": "NFS: Remove the BKL from the rename, rmdir and unlink operations\n\nAttribute updates are safe, and dentry operations are protected using VFS\nlevel locks. Defer removing the BKL from sillyrename until a separate\npatch.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc0f684c21b5d4b41dc2ec76f7c0897ac98f5b6e",
      "tree": "686ee2a2d7b4f04d5812c76485c18c048c5366d2",
      "parents": [
        "fc81af535e462764e17f638d542973fbef13b026"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:20 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:54 2008 -0400"
      },
      "message": "NFS: Remove BKL from NFS lookup code\n\nAll dentry-related operations are already BKL-safe, since they are\nprotected by the VFS locking. No extra locks should be needed in the NFS\ncode.\n\nIn the case of nfs_revalidate_inode(), we\u0027re only doing an attribute\nupdate (protected by the inode-\u003ei_lock).\nIn the case of nfs_lookup(), we\u0027re instantiating a new dentry, so there\nshould be no contention possible until after we call d_materialise_unique.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc81af535e462764e17f638d542973fbef13b026",
      "tree": "1e3c1c2e6a94698a9427ee21decd8a701bef947a",
      "parents": [
        "f1e2eda23513b68003202bddf1f84158baad8844"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:52:40 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:54 2008 -0400"
      },
      "message": "NFS: Remove the BKL from nfs_link()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f1e2eda23513b68003202bddf1f84158baad8844",
      "tree": "88e56131a18a1310e0d4a8bcabfce629496ca7d3",
      "parents": [
        "bba67e0e3f4caba2b2b90b48ed798fb0461bcb86"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:50:50 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:53 2008 -0400"
      },
      "message": "NFS: Remove the BKL from the inode creation operations\n\nnfs_instantiate() does not require the BKL, neither do the attribute\nupdates or the RPC code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bba67e0e3f4caba2b2b90b48ed798fb0461bcb86",
      "tree": "c13781f1265ccd73b4f71a33e9bb22931e954c1e",
      "parents": [
        "b6a2e569e2157509951c9f3f58dfa18b44ce91b3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 13:26:23 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:53 2008 -0400"
      },
      "message": "NFS: Remove BKL usage from open()\n\nAll the NFSv4 stateful operations are already protected by other locks (in\nparticular by the rpc_sequence locks.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b6a2e569e2157509951c9f3f58dfa18b44ce91b3",
      "tree": "1398d38574357e8f89948102f2df1e86634b91f1",
      "parents": [
        "4d80f2ecd506d9732ad94a6da104580bb47680d6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 13:26:16 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:52 2008 -0400"
      },
      "message": "NFS: Remove BKL usage from the write path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4d80f2ecd506d9732ad94a6da104580bb47680d6",
      "tree": "26cb6bb08a53eae18dcf046b1041f20b5c9a9f8d",
      "parents": [
        "fa6dc9dc59c3a76fd209a97c8cf37395980fb903"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:18 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:52 2008 -0400"
      },
      "message": "NFS: Remove the BKL from the permission checking code\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fa6dc9dc59c3a76fd209a97c8cf37395980fb903",
      "tree": "3af530da9d0a21f385007afb34bc058e3f6cab21",
      "parents": [
        "a3d01454bc58b5a211ef64a7670572a40b71e682"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 13:26:14 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:51 2008 -0400"
      },
      "message": "NFS: Remove attribute update related BKL references\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a3d01454bc58b5a211ef64a7670572a40b71e682",
      "tree": "68c1ba383fb2c6702a8cc02bc81d51da6fb2920b",
      "parents": [
        "1b83d707032a1be40a60ed0a9bd841662cc04a5d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 12:21:19 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:51 2008 -0400"
      },
      "message": "NFS: Remove BKL requirement from attribute updates\n\nThe main problem is dealing with inode-\u003ei_size: we need to set the\ninode-\u003ei_lock on all attribute updates, and so vmtruncate won\u0027t cut it.\nMake an NFS-private version of vmtruncate that has the necessary locking\nsemantics.\n\nThe result should be that the following inode attribute updates are\nprotected by inode-\u003ei_lock\n\tnfsi-\u003ecache_validity\n\tnfsi-\u003eread_cache_jiffies\n\tnfsi-\u003eattrtimeo\n\tnfsi-\u003eattrtimeo_timestamp\n\tnfsi-\u003echange_attr\n\tnfsi-\u003elast_updated\n\tnfsi-\u003ecache_change_attribute\n\tnfsi-\u003eaccess_cache\n\tnfsi-\u003eaccess_cache_entry_lru\n\tnfsi-\u003eaccess_cache_inode_lru\n\tnfsi-\u003eacl_access\n\tnfsi-\u003eacl_default\n\tnfsi-\u003enfs_page_tree\n\tnfsi-\u003encommit\n\tnfsi-\u003enpages\n\tnfsi-\u003eopen_files\n\tnfsi-\u003esilly_list\n\tnfsi-\u003eacl\n\tnfsi-\u003eopen_states\n\tinode-\u003ei_size\n\tinode-\u003ei_atime\n\tinode-\u003ei_mtime\n\tinode-\u003ei_ctime\n\tinode-\u003ei_nlink\n\tinode-\u003ei_uid\n\tinode-\u003ei_gid\n\nThe following is protected by dir-\u003ei_mutex\n\tnfsi-\u003ecookieverf\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1b83d707032a1be40a60ed0a9bd841662cc04a5d",
      "tree": "4c39cb618026a4480e06e5ed0d30c7a553a6fabf",
      "parents": [
        "d67d1c7bf948341fd8678c8e337ec27f4b46b206"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 15:44:04 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 15 18:10:50 2008 -0400"
      },
      "message": "NFS: Protect inode-\u003ei_nlink updates using inode-\u003ei_lock\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2fceef397f9880b212a74c418290ce69e7ac00eb",
      "tree": "d9cc09ab992825ef7fede4a688103503e3caf655",
      "parents": [
        "feae1ef116ed381625d3731c5ae4f4ebcb3fa302",
        "bce7f793daec3e65ec5c5705d2457b81fe7b5725"
      ],
      "author": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "committer": {
        "name": "Jonathan Corbet",
        "email": "corbet@lwn.net",
        "time": "Mon Jul 14 15:29:34 2008 -0600"
      },
      "message": "Merge commit \u0027v2.6.26\u0027 into bkl-removal\n"
    },
    {
      "commit": "f45663ce5fb30f76a3414ab3ac69f4dd320e760a",
      "tree": "c05fc92328c7a27aad026b1579eb087bf9f17402",
      "parents": [
        "6738b2512bdf93ffbefe108b38a9165d5a718c3f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jun 24 19:28:02 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:44 2008 -0400"
      },
      "message": "NFS: Allow either strict or sloppy mount option parsing\n\nThe kernel\u0027s NFS client mount option parser currently doesn\u0027t allow\nunrecognized or incorrect mount options.  This prevents misspellings or\nincorrectly specified mount options from possibly causing silent data\ncorruption.\n\nHowever, NFS mount options are not standardized, so different operating\nsystems can use differently spelled mount options to support similar\nfeatures, or can support mount options which no other operating system\nsupports.\n\n\"Sloppy\" mount option parsing, which allows the parser to ignore any\noption it doesn\u0027t recognize, is needed to support automounters that often\nuse maps that are shared between heterogenous operating systems.\n\nThe legacy mount command ignores the validity of the values of mount\noptions entirely, except for the \"sec\u003d\" and \"proto\u003d\" options.  If an\nincorrect value is specified, the out-of-range value is passed to the\nkernel; if a value is specified that contains non-numeric characters,\nit appears as though the legacy mount command sets that option to zero\n(probably incorrect behavior in general).\n\nIn any case, this sets a precedent which we will partially follow for\nthe kernel mount option parser:\n\n\t+ if \"sloppy\" is not set, the parser will be strict about both\n\t  unrecognized options (same as legacy) and invalid option\n\t  values (stricter than legacy)\n\n\t+ if \"sloppy\" is set, the parser will ignore unrecognized\n\t  options and invalid option values (same as legacy)\n\nAn \"invalid\" option value in this case means that either the type\n(integer, short, or string) or sign (for integer values) of the specified\nvalue is incorrect.\n\nThis patch does two things: it changes the NFS client\u0027s mount option\nparsing loop so that it parses the whole string instead of failing at\nthe first unrecognized option or invalid option value.  An unrecognized\noption or an invalid option value cause the option to be skipped.\n\nThen, the patch adds a \"sloppy\" mount option that allows the parsing\nto succeed anyway if there were any problems during parsing.  When\nparsing a set of options is complete, if there are errors and \"sloppy\"\nwas specified, return success anyway.  Otherwise, only return success\nif there are no errors.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6738b2512bdf93ffbefe108b38a9165d5a718c3f",
      "tree": "b294dc4583e71a58fe328ee8c25783a8c48bb02a",
      "parents": [
        "dd07c94750cb1ee4449fb0db06623e1865b3e26e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jun 24 16:33:54 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:43 2008 -0400"
      },
      "message": "NFS4: Set security flavor default for NFSv4 mounts like other defaults\n\nSet the default security flavor when we set the other mount option\ndefault values for NFSv4.  This cleans up the NFSv4 mount option parsing\npath to look like the NFSv2/v3 one.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dd07c94750cb1ee4449fb0db06623e1865b3e26e",
      "tree": "1174ad17481341baa7841ad9e1219de7c858a1fb",
      "parents": [
        "01060c896e3e1ef53dcb914301c186932cd31b81"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jun 24 16:33:46 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:42 2008 -0400"
      },
      "message": "NFS: Set security flavor default for NFSv2/3 mounts like other defaults\n\nSet the default security flavor when we set the other mount option default\nvalues.  After this change, only the legacy user-space mount path needs to\nset the NFS_MOUNT_SECFLAVOUR flag.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01060c896e3e1ef53dcb914301c186932cd31b81",
      "tree": "638034cbd1707135426e602f7d8d2035c415622a",
      "parents": [
        "0e0cab744b17a70ef0f08d818d66935feade7cad"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Jun 24 16:33:38 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:41 2008 -0400"
      },
      "message": "NFS: Refactor logic for parsing NFS security flavor mount options\n\nClean up: Refactor the NFS mount option parsing function to extract the\nsecurity flavor parsing logic into a separate function.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0e0cab744b17a70ef0f08d818d66935feade7cad",
      "tree": "761a796ae9f0cdcaf15435699c293e30e711264d",
      "parents": [
        "ed596a8adb7964cf9d2f7682f9cf2c37322a775d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Jun 26 17:47:12 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:40 2008 -0400"
      },
      "message": "NFS: use documenting macro constants for initializing ac{reg, dir}{min, max}\n\nClean up.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ed596a8adb7964cf9d2f7682f9cf2c37322a775d",
      "tree": "8a409a671afc5b8fe17eceefdf335a739c096081",
      "parents": [
        "259875efed06d6936f54c9a264e868937f1bc217"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Jun 26 17:47:05 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:39 2008 -0400"
      },
      "message": "NFS: Move the nfs_set_port() call out of nfs_parse_mount_options()\n\nThe remount path does not need to set the port in the server address.\nSince it\u0027s not really a part of option parsing, move the nfs_set_port()\ncall to nfs_parse_mount_options()\u0027s callers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "259875efed06d6936f54c9a264e868937f1bc217",
      "tree": "c3831c6050582e6ab90ab523131788e2b09df163",
      "parents": [
        "40fef8a649e5344bfb6a67a7cc3def3e0dad6448"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 02 14:43:47 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:38 2008 -0400"
      },
      "message": "NFS: set transport defaults after mount option parsing is finished\n\nMove the UDP/TCP default timeo/retrans settings for text mounts to\nnfs_init_timeout_values(), which was were they were always being\ninitialised (and sanity checked) for binary mounts.\nDocument the default timeout values using appropriate #defines.\n\nEnsure that we initialise and sanity check the transport protocols that\nmay have been specified by the user.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5afc597c5f0bd184457e49b9a330fcb37b69db11",
      "tree": "f84cd40755de219095c376a5f96ba69da80e26f5",
      "parents": [
        "ee84dfc45467fd8e5ce04fa2813d98e0aebe465c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 11 10:03:11 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:32 2008 -0400"
      },
      "message": "nfs4: fix potential race with rapid nfs_callback_up/down cycle\n\nIf the nfsv4 callback thread is rapidly brought up and down, it\u0027s\npossible that nfs_callback_svc might never get a chance to run. If\nthis happens, the cleanup at thread exit might never occur, throwing\nthe refcounting off and nfs_callback_info in an incorrect state.\n\nMove the clean functions into nfs_callback_down. Also change the\nnfs_callback_info struct to track the svc_rqst rather than svc_serv\nsince we need to know that to call svc_exit_thread.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ee84dfc45467fd8e5ce04fa2813d98e0aebe465c",
      "tree": "517b5cffc6785a1f170581ea4952e81c745bbf0d",
      "parents": [
        "77e03677ac76d413fbb6d6caaffa1d64877a0c2a"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Jun 11 10:03:10 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:31 2008 -0400"
      },
      "message": "nfs4: remove BKL from nfs_callback_up and nfs_callback_down\n\nThe nfs_callback_mutex is sufficient protection.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "77e03677ac76d413fbb6d6caaffa1d64877a0c2a",
      "tree": "7e89420de054284c5cb26896c52a3818598c642b",
      "parents": [
        "d8e7748ab8322171ebfd78f6155ff35e7d57ac32"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Tue Jun 24 20:25:57 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:30 2008 -0400"
      },
      "message": "nfs: initialize timeout variable in nfs4_proc_setclientid_confirm\n\ngcc (4.3.0) rightfully warns about this:\n/usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/fs/nfs/nfs4proc.c: In function nfs4_proc_setclientid_confirm:\n/usr0/export/dev/bhalevy/git/linux-pnfs-bh-nfs41/fs/nfs/nfs4proc.c:2936: warning: timeout may be used uninitialized in this function\n\nnfs4_delay that\u0027s passed a pointer to \u0027timeout\u0027 is looking at its value\nand sets it up to some value in the range: NFS4_POLL_RETRY_MIN..NFS4_POLL_RETRY_MAX\n\tif (*timeout \u003c\u003d 0)\n\t\t*timeout \u003d NFS4_POLL_RETRY_MIN;\n\tif (*timeout \u003e NFS4_POLL_RETRY_MAX)\n\t\t*timeout \u003d NFS4_POLL_RETRY_MAX;\n\nTherefore it will end up set to some sane, though rather indeterministic, value.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d8e7748ab8322171ebfd78f6155ff35e7d57ac32",
      "tree": "a9efa9e4f871a459d1b8bc3cebab133cb1a378f3",
      "parents": [
        "ce3b7e1906ebbe96753fe090b36de6ffb8e0e0e7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 23 12:37:01 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:29 2008 -0400"
      },
      "message": "NFS: handle interface identifiers in incoming IPv6 addresses\n\nAdd support in the kernel NFS client\u0027s address parser for interface\nidentifiers.\n\nIPv6 link-local addresses require an additional \"interface identifier\",\nwhich is a network device name or an integer that indexes the array of\nlocal network interfaces.  They are suffixed to the address with a \u0027%\u0027.\nFor example:\n\n\tfe80::215:c5ff:fe3b:e1b2%2\n\nindicates an interface index of 2.  Or\n\n\tfe80::215:c5ff:fe3b:e1b2%eth0\n\nindicates that requests should be routed through the eth0 device.\nWithout the interface ID, link-local addresses are not usable for NFS.\n\nBoth the kernel NFS client mount option parser and the mount.nfs command\ncan take either form.  The mount.nfs command always passes the address\nthrough getnameinfo(3), which usually re-writes interface indices as\ndevice names.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ce3b7e1906ebbe96753fe090b36de6ffb8e0e0e7",
      "tree": "7518683c3a5818a0d48d377fa5dd4a37faddaec7",
      "parents": [
        "d1aa08257312f1439c1ab7c8a18e3856f9530f46"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 23 12:36:53 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:28 2008 -0400"
      },
      "message": "NFS: Add string length argument to nfs_parse_server_address\n\nTo make nfs_parse_server_address() more generally useful, allow it to\naccept input strings that are not terminated with \u0027\\0\u0027.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d1aa08257312f1439c1ab7c8a18e3856f9530f46",
      "tree": "04ac6b07e5fda3ea93a706fb4074e92b7a95aee3",
      "parents": [
        "dc04589827f7e1af12714af8bb00e3f3c4c48c62"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 23 12:36:45 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:27 2008 -0400"
      },
      "message": "NFS: Support raw IPv6 address hostnames during NFS mount operation\n\nTraditionally the mount command has looked for a \":\" to separate the\nserver\u0027s hostname from the export path in the mounted on device name,\nlike this:\n\n\tmount server:/export /mounted/on/dir\n\nThe server\u0027s hostname is \"server\" and the export path is \"/export\".\n\nYou can also substitute a specific IPv4 network address for the server\nhostname, like this:\n\n\tmount 192.168.0.55:/export /mounted/on/dir\n\nRaw IPv6 addresses present a problem, however, because they look\nsomething like this:\n\n\tfe80::200:5aff:fe00:30b\n\nNote the use of colons.\n\nTo get around the presence of colons, copy the Solaris convention used for\nmounting IPv6 servers by address: wrap a raw IPv6 address with square\nbrackets.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc04589827f7e1af12714af8bb00e3f3c4c48c62",
      "tree": "fb1436269bd041af0609ef4f748f1c58f91f974b",
      "parents": [
        "cd100725620a8063fbc81bcf16d7c9e71a9583e0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Mon Jun 23 12:36:37 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:26 2008 -0400"
      },
      "message": "NFS: Use common device name parsing logic for NFSv4 and NFSv2/v3\n\nTo support passing a raw IPv6 address as a server hostname, we need to\nexpand the logic that handles splitting the passed-in device name into\na server hostname and export path\n\nStart by pulling device name parsing out of the mount option validation\nfunctions and into separate helper functions.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd100725620a8063fbc81bcf16d7c9e71a9583e0",
      "tree": "2c1f64d5ba23f45c91e6e29ba3bf10bbe696782c",
      "parents": [
        "e468bae97d243fe0e1515abaa1f7d0edf1476ad0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 17 16:12:00 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:25 2008 -0400"
      },
      "message": "NFS: Fix a dependency on CONFIG_NFS_V4 in nfs_remount\n\nFix the \u0027nfs4_fs_type\u0027 undeclared error in nfs_remount when compiling sans\nNFSv4...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Jeff Layton \u003cjlayton@redhat.com\u003e\n"
    },
    {
      "commit": "e468bae97d243fe0e1515abaa1f7d0edf1476ad0",
      "tree": "42bbbfe8d6dfc60bcaaaa1a7164ba75dc1060050",
      "parents": [
        "e7d39069e387a12d4c57f4067d9f48c1d29ea900"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 13 13:25:22 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:24 2008 -0400"
      },
      "message": "NFS: Allow redirtying of a completed unstable write.\n\nCurrently, if an unstable write completes, we cannot redirty the page in\norder to reflect a new change in the page data until after we\u0027ve sent a\nCOMMIT request.\n\nThis patch allows a page rewrite to proceed without the unnecessary COMMIT\nstep, putting it immediately back onto the dirty page list, undoing the\nVM unstable write accounting, and removing the NFS_PAGE_TAG_COMMIT tag from\nthe NFS radix tree.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e7d39069e387a12d4c57f4067d9f48c1d29ea900",
      "tree": "5c22fa8d08bc0ed90af16b4c8c1044e6da15bbac",
      "parents": [
        "396cee977f79590673ad51b04f1853e58bc30e7b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 13 12:12:32 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:23 2008 -0400"
      },
      "message": "NFS: Clean up nfs_update_request()\n\nSimplify the loop in nfs_update_request by moving into a separate function\nthe code that attempts to update an existing cached NFS write.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "396cee977f79590673ad51b04f1853e58bc30e7b",
      "tree": "6cf6080d14e23f6462d625ac7620927a210f1dfd",
      "parents": [
        "d33e4dfeab5eb0c3c1359cc1a399f2f8b49e18de"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Jun 12 12:37:49 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:22 2008 -0400"
      },
      "message": "NFS: missing newline in NFS mount debugging message\n\nClean up.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d33e4dfeab5eb0c3c1359cc1a399f2f8b49e18de",
      "tree": "f1ddcbcb88652023657ca7f9447c4528f6cbeca9",
      "parents": [
        "ecbb3845dd678364148c1faad32adbc9dd833ef9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Jun 12 12:37:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:21 2008 -0400"
      },
      "message": "NFS: Treat \"intr\" and \"nointr\" options as deprecated\n\nClean up:  the \"intr\" and \"nointr\" mount options were recently retired.\nDocument this in the NFS mount option parser.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ecbb3845dd678364148c1faad32adbc9dd833ef9",
      "tree": "4ccd2237499f80586cb23ae0c2b00a092cb4e455",
      "parents": [
        "f41f741838480aeaa3a189cff6e210503cf9c42d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Jun 12 12:37:33 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:20 2008 -0400"
      },
      "message": "NFS: Allow any value for the \"retry\" option\n\nThe kernel NFS mount option parser should ignore the retry\u003d mount option\nsince it is meaningful only in user space.  Today it expects a number\nrather than arbitrary text, so it ignores the option if the value is\nnumeric, but chokes if there are other characters in the value.\n\nChange it to allow any text (except \",\") as its value.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f41f741838480aeaa3a189cff6e210503cf9c42d",
      "tree": "fc4509d47132c28ca211e57d8f59b56accb6db8b",
      "parents": [
        "2e96d2867245668dbdb973729288cf69b9fafa66"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 17:39:04 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:19 2008 -0400"
      },
      "message": "NFS: Ensure we zap only the access and acl caches when setting new acls\n\n...and ensure that we obey the NFS_INO_INVALID_ACL flag when retrieving the\nacls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2e96d2867245668dbdb973729288cf69b9fafa66",
      "tree": "8f8b0642beaf0f7d53e31963328dfbc992c5ac88",
      "parents": [
        "34e8f92831cb5c40b3137e47a3daf4c09016ef02"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 16:42:05 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:18 2008 -0400"
      },
      "message": "NFS: Fix a warning in nfs4_async_handle_error\n\nWe\u0027re not modifying the nfs_server when we call nfs_inc_server_stats and\nfriends, so allow the compiler to pass \u0027const\u0027 pointers too.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "34e8f92831cb5c40b3137e47a3daf4c09016ef02",
      "tree": "7351733689914353b1636b5f21aca6d7b0236a79",
      "parents": [
        "46cb650c224bb8e64a749090105d74b9e8eda669"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Thu Jun 12 12:32:25 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:17 2008 -0400"
      },
      "message": "NFS: Move fs/nfs/iostat.h to include/linux\n\nThe fs/nfs/iostat.h header has definitions that were designed to be exposed\nto user space.  Move these definitions under include/linux so user space can\nuse the definitions in applications that read /proc/self/mountstats.\n\nAlso address a handful of coding style issues called out by checkpatch.pl in\nfs/nfs/iostat.h.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "46cb650c224bb8e64a749090105d74b9e8eda669",
      "tree": "03c6b21bc70a983a63642c2bec6c0e26f07e4efb",
      "parents": [
        "b22602a673b1743bba4b62bb404ffd3b269d2f09"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 11 16:32:46 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:16 2008 -0400"
      },
      "message": "NFS: Remove the redundant file_open entry from struct nfs_rpc_ops\n\nAll instances are set to nfs_open(), so we should just remove the redundant\nindirection. Ditto for the file_release op\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "659bfcd6dd88919a5ad453f62afbeffcb3106847",
      "tree": "e3996d809e9ae4860a8adac71474e6ea8850c3b5",
      "parents": [
        "a486aeda9b2b0d944aecce7871b3186379b898de"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jun 10 19:39:41 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:14 2008 -0400"
      },
      "message": "NFS: Fix the ftruncate() credential problem\n\nftruncate() access checking is supposed to be performed at open() time,\njust like reads and writes.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48b605f83c920d8daa50e43fc2c7f718e04c7bfa",
      "tree": "745de009daf7e4efe7105d2501276c83de31466d",
      "parents": [
        "c2d946e55e1be20a7443918e3b7497b905e6b3f7"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Jun 10 15:38:39 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:09 2008 -0400"
      },
      "message": "NFS: implement option checking when remounting NFS filesystems (resend)\n\nWhen remounting an NFS or NFS4 filesystem, the new NFS options are not\nrespected, yet the remount will still return success. This patch adds\na remount_fs sb op for NFS that checks any new nfs mount options against\nthe existing ones and fails the mount if any have changed.\n\nThis is only implemented for string-based mount options since doing\nthis with binary options isn\u0027t really feasible.\n\nThis is essentially the same as the original patch I sent out, but\nadds a check to see if the addr\u003d option has changed.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c2d946e55e1be20a7443918e3b7497b905e6b3f7",
      "tree": "5543227ee0938124949f9f5bdb3546b429e1ff49",
      "parents": [
        "cd983ef81b9d79573848dabf81277c7314220257"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@kernel.org",
        "time": "Tue May 20 01:08:00 2008 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:08 2008 -0400"
      },
      "message": "fs/nfs/nfsroot.c: remove CVS keyword\n\nThis patch removes a CVS keyword that wasn\u0027t updated for a long time\nfrom a comment.\n\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "48186c7d5734a6b137f9186b37f6dc98097d0429",
      "tree": "3fc31d6d71a9160e50ea1c4e9afaefe9b4aefd80",
      "parents": [
        "6da24bc9cfc645c619992e39aab09747164c9f14"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:56:05 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:05 2008 -0400"
      },
      "message": "NFS: Fix trace debugging nits in write.c\n\nClean up: fix a few dprintk messages that still need to show the RPC task ID\ncorrectly, and be sure we use the preferred %lld or %llu instead of %Ld or\n%Lu.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6da24bc9cfc645c619992e39aab09747164c9f14",
      "tree": "a2d092a395d219db6b251d4d7f481ca0f9f7ecb0",
      "parents": [
        "b7eaefaa8722fd98e5c2632640d1abd2b0c83e84"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:58 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:04 2008 -0400"
      },
      "message": "NFS: Use NFSDBG_FILE for all fops\n\nClean up: some fops use NFSDBG_FILE, some use NFSDBG_VFS.  Let\u0027s use\nNFSDBG_FILE for all fops, and consistently report file names instead\nof inode numbers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7eaefaa8722fd98e5c2632640d1abd2b0c83e84",
      "tree": "58547b04f1286e65081536fbf37c60ddbc66244a",
      "parents": [
        "cc0dd2d1052aede2946ad1338a8f6f5d5c604740"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:50 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:03 2008 -0400"
      },
      "message": "NFS: Add debugging facility for NFS aops\n\nRecent work in fs/nfs/file.c neglected to add appropriate trace debugging\nfor the NFS client\u0027s address space operations.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cc0dd2d1052aede2946ad1338a8f6f5d5c604740",
      "tree": "e4566796e958935c4d21988c8c43b1d798f2c1d6",
      "parents": [
        "b84e06c58fdefdc42931f771dc295e63f4b27365"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:42 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:02 2008 -0400"
      },
      "message": "NFS: Make nfs_open methods consistent\n\nClean up: Report the same debugging info and count function calls the\nsame for files and directories in nfs_opendir() and nfs_file_open().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b84e06c58fdefdc42931f771dc295e63f4b27365",
      "tree": "1018cbbb7559b928ee1ae7e29663de81ba56ef6b",
      "parents": [
        "549177863bac22f23663ee9f70c4e3b9fb269f2c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 11 17:55:34 2008 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jul 09 12:09:01 2008 -0400"
      },
      "message": "NFS: Make nfs_llseek methods consistent\n\nClean up: Report the same debugging info in nfs_llseek_dir() and\nnfs_llseek_file().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "549177863bac22f23663ee9f70c4e3b9fb269f2c"
}
