)]}'
{
  "log": [
    {
      "commit": "9a3936aac133037f65124fcb2d676a6c201a90a4",
      "tree": "164fa366bf66e5596ff11d24daab4caf5266d27b",
      "parents": [
        "141aeb9f26f9f12f1584c128ce8697cdffb046e7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 26 08:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 26 08:09:46 2009 -0400"
      },
      "message": "NFSv4: The link() operation should return any delegation on the file\n\nOtherwise, we have to wait for the server to recall it.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "141aeb9f26f9f12f1584c128ce8697cdffb046e7",
      "tree": "295953858e8ddd265a1d3dae18266b1198c55132",
      "parents": [
        "52567b03ca38b6e556ced450d64dba8d66e23b0e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 26 08:09:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Oct 26 08:09:46 2009 -0400"
      },
      "message": "NFSv4: Fix two unbalanced put_rpccred() issues.\n\nCommits 29fba38b (nfs41: lease renewal) and fc01cea9 (nfs41: sequence\noperation) introduce a couple of put_rpccred() calls on credentials for\nwhich there is no corresponding get_rpccred().\n\nSee http://bugzilla.kernel.org/show_bug.cgi?id\u003d14249\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "52567b03ca38b6e556ced450d64dba8d66e23b0e",
      "tree": "a08e14e2a8ab8c69e80eb5ea6208d473b1254582",
      "parents": [
        "a8b40bc7e635831b61c43acc71a86d3a68b2dff0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 23 14:46:42 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 23 14:46:42 2009 -0400"
      },
      "message": "NFSv4: Fix a bug when the server returns NFS4ERR_RESOURCE\n\nRFC 3530 states that when we recieve the error NFS4ERR_RESOURCE, we are not\nsupposed to bump the sequence number on OPEN, LOCK, LOCKU, CLOSE, etc\noperations. The problem is that we map that error into EREMOTEIO in the XDR\nlayer, and so the NFSv4 middle-layer routines like seqid_mutating_err(),\nand nfs_increment_seqid() don\u0027t recognise it.\n\nThe fix is to defer the mapping until after the middle layers have\nprocessed the error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a8b40bc7e635831b61c43acc71a86d3a68b2dff0",
      "tree": "8a91dcd2149f47d2a2b6f7b49d653dd168c908a8",
      "parents": [
        "964fe080d94db82a3268443e9b9ece4c60246414"
      ],
      "author": {
        "name": "Terry Loftin",
        "email": "terry.loftin@hp.com",
        "time": "Thu Oct 22 21:36:01 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Oct 23 14:16:30 2009 -0400"
      },
      "message": "nfs: Panic when commit fails\n\nActually pass the NFS_FILE_SYNC option to the server to avoid a\nPanic in nfs_direct_write_complete() when a commit fails.\n\nAt the end of an nfs write, if the nfs commit fails, all the writes\nwill be rescheduled.  They are supposed to be rescheduled as NFS_FILE_SYNC\nwrites, but the rpc_task structure is not completely intialized and so\nthe option is not passed.  When the rescheduled writes complete, the\nreturn indicates that they are NFS_UNSTABLE and we try to do another\ncommit.  This leads to a Panic because the commit data structure pointer\nwas set to null in the initial (failed) commit attempt.\n\nSigned-off-by: Terry Loftin \u003cterry.loftin@hp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4223a4a155f245d41c350ed9eba4fc32e965c4da",
      "tree": "521f5a2c9e3ae1e17415e93489da015b9b5b2c5d",
      "parents": [
        "ad3960243e55320d74195fb85c975e0a8cc4466c"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Oct 20 14:13:46 2009 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 22 08:15:23 2009 +0900"
      },
      "message": "nfs: Fix nfs_parse_mount_options() kfree() leak\n\nFix a (small) memory leak in one of the error paths of the NFS mount\noptions parsing code.\n\nRegression introduced in 2.6.30 by commit a67d18f (NFS: load the\nrpc/rdma transport module automatically).\n\nReported-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nReported-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1be9eee2996fd9969625e7b5e2f2bc2032fd3cb",
      "tree": "b2f9bd708207a4013605320487b480a3a1ba56f8",
      "parents": [
        "eea7e17e0eb23729d58368420659f8e7c357d82e"
      ],
      "author": {
        "name": "Stefan Richter",
        "email": "stefanr@s5r6.in-berlin.de",
        "time": "Mon Oct 12 11:26:12 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 12 10:25:12 2009 -0700"
      },
      "message": "NFS: suppress a build warning\n\nstruct sockaddr_storage * can safely be used as struct sockaddr *.\nSuppress an \"incompatible pointer type\" warning.\n\nSigned-off-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3050141bae57984dd660e6861632ccf9b8bca77e",
      "tree": "01d0829c1f46885543f93785190d55a3d6ef3203",
      "parents": [
        "517be09def6cd7bc231222ee756fde8ea245a6fe"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 08 11:50:55 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 08 11:50:55 2009 -0400"
      },
      "message": "NFSv4: Kill nfs4_renewd_prepare_shutdown()\n\nThe NFSv4 renew daemon is shared between all active super blocks that refer\nto a particular NFS server, so it is wrong to be shutting it down in\nnfs4_kill_super every time a super block is destroyed.\n\nThis patch therefore kills nfs4_renewd_prepare_shutdown altogether, and\nleaves it up to nfs4_shutdown_client() to also shut down the renew daemon\nby means of the existing call to nfs4_kill_renewd().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "517be09def6cd7bc231222ee756fde8ea245a6fe",
      "tree": "a1ef080c8cddd9e766590cbede7d9310f6e02e53",
      "parents": [
        "f4373bf9e67e4a653c8854acd7b02dac9714c98a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:42:20 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:42:20 2009 -0400"
      },
      "message": "NFSv4: Fix the referral mount code\n\nFix a typo which causes try_location() to use the wrong length argument\nwhen calling nfs_parse_server_name(). This again, causes the initialisation\nof the mount\u0027s sockaddr structure to fail.\n\nAlso ensure that if nfs4_pathname_string() returns an error, then we pass\nthat error back up the stack instead of ENOENT.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f4373bf9e67e4a653c8854acd7b02dac9714c98a",
      "tree": "d0371ed7638c0939550a2a43aef5b384d2e96b48",
      "parents": [
        "bcd2ea17da6a329a7276cde7286d802f009af332"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Tue Oct 06 15:42:18 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:42:18 2009 -0400"
      },
      "message": "nfs: Avoid overrun when copying client IP address string\n\nAs seen in \u003chttp://bugs.debian.org/549002\u003e, nfs4_init_client() can\noverrun the source string when copying the client IP address from\nnfs_parsed_mount_data::client_address to nfs_client::cl_ipaddr.  Since\nthese are both treated as null-terminated strings elsewhere, the copy\nshould be done with strlcpy() not memcpy().\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bcd2ea17da6a329a7276cde7286d802f009af332",
      "tree": "11344feb0c0c23175844b0cb86da589146e21370",
      "parents": [
        "f5855fecda65c1965c894915ace1e086d4925154"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:41:22 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:41:22 2009 -0400"
      },
      "message": "NFS: Fix port initialisation in nfs_remount()\n\nThe recent changeset 53a0b9c4c99ab0085a06421f71592722e5b3fd5f (NFS: Replace\nnfs_parse_ip_address() with rpc_pton()) broke nfs_remount, since the call\nto rpc_pton() will zero out the port number in data-\u003enfs_server.address.\n\nThis is actually due to a bug in nfs_remount: it should be looking at the\nport number in nfs_server.port instead...\n\nThis fixes bug\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d14276\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f5855fecda65c1965c894915ace1e086d4925154",
      "tree": "320de50837519abcd62580b3f7f1ae43a6503832",
      "parents": [
        "c5811dbdd26284d63c19fca618bd740dd10ad53d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:40:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:40:37 2009 -0400"
      },
      "message": "NFS: Fix port and mountport display in /proc/self/mountinfo\n\nCurrently, the port and mount port will both display as 65535 if you do not\nspecify a port number. That would be wrong...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c5811dbdd26284d63c19fca618bd740dd10ad53d",
      "tree": "e41cdb8f267340cd78e5955523c14353b96cb714",
      "parents": [
        "0eca52a92735f43462165efe00a7e394345fb38e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:40:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 06 15:40:15 2009 -0400"
      },
      "message": "NFS: Fix a default mount regression...\n\nWith the recent spate of changes, the nfs protocol version will now default\nto 2 instead of 3, while the mount protocol version defaults to 3.\n\nThe following patch should ensure the defaults are consistent with the\nprevious defaults of vers\u003d3,proto\u003dtcp,mountvers\u003d3,mountproto\u003dtcp.\n\nThis fixes the bug\n   http://bugzilla.kernel.org/show_bug.cgi?id\u003d14259\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0f37e2f77731b3473fa6bd5ee53255d9a9cdb40",
      "tree": "3c26d3ed1a453156e9c208ccb5567a8954dba064",
      "parents": [
        "6f5071020d5ec89b5d095aa488db604adb921aec"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sun Sep 27 22:29:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Sep 27 11:39:25 2009 -0700"
      },
      "message": "const: mark struct vm_struct_operations\n\n* mark struct vm_area_struct::vm_ops as const\n* mark vm_ops in AGP code\n\nBut leave TTM code alone, something is fishy there with global vm_ops\nbeing used.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36dd2fdb37efdab15844eb72026f8ce3aa0fb560",
      "tree": "02639a0fc3dde84bf94a6dcb430ed61869759561",
      "parents": [
        "7a73fdde3990ea840b604248362876437ea8ce80"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Thu Sep 24 14:58:42 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 24 14:58:42 2009 -0400"
      },
      "message": "nfs[23] tcp breakage in mount with binary options\n\nWe forget to set nfs_server.protocol in tcp case when old-style binary\noptions are passed to mount.  The thing remains zero and never validated\nafterwards.  As the result, we hit BUG in fs/nfs/client.c:588.\n\nBreakage has been introduced in NFS: Add nfs_alloc_parsed_mount_data\nmerged yesterday...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6c5daf012c9155aafd2c7973e4278766c30dfad0",
      "tree": "33959d7b36d03e1610615641a2940cb2de5e8603",
      "parents": [
        "6d39b27f0ac7e805ae3bd9efa51d7da04bec0360",
        "c08d3b0e33edce28e9cfa7b64f7fe5bdeeb29248"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:32:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:32:11 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  truncate: use new helpers\n  truncate: new helpers\n  fs: fix overflow in sys_mount() for in-kernel calls\n  fs: Make unload_nls() NULL pointer safe\n  freeze_bdev: grab active reference to frozen superblocks\n  freeze_bdev: kill bd_mount_sem\n  exofs: remove BKL from super operations\n  fs/romfs: correct error-handling code\n  vfs: seq_file: add helpers for data filling\n  vfs: remove redundant position check in do_sendfile\n  vfs: change sb-\u003es_maxbytes to a loff_t\n  vfs: explicitly cast s_maxbytes in fiemap_check_ranges\n  libfs: return error code on failed attr set\n  seq_file: return a negative error code when seq_path_root() fails.\n  vfs: optimize touch_time() too\n  vfs: optimization for touch_atime()\n  vfs: split generic_forget_inode() so that hugetlbfs does not have to copy it\n  fs/inode.c: add dev-id and inode number for debugging in init_special_inode()\n  libfs: make simple_read_from_buffer conventional\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "c08d3b0e33edce28e9cfa7b64f7fe5bdeeb29248",
      "tree": "6c161cc57a2873e6f91335113192a99531901cd8",
      "parents": [
        "25d9e2d15286281ec834b829a4aaf8969011f1cd"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Fri Aug 21 02:35:06 2009 +1000"
      },
      "committer": {
        "name": "al",
        "email": "al@dizzy.pdmi.ras.ru",
        "time": "Thu Sep 24 08:41:47 2009 -0400"
      },
      "message": "truncate: use new helpers\n\nUpdate some fs code to make use of new helper functions introduced\nin the previous patch. Should be no significant change in behaviour\n(except CIFS now calls send_sig under i_lock, via inode_newsize_ok).\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: linux-nfs@vger.kernel.org\nCc: Trond.Myklebust@netapp.com\nCc: linux-cifs-client@lists.samba.org\nCc: sfrench@samba.org\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2bcd57ab61e7cabed626226a3771617981c11ce1",
      "tree": "687c0c35fb2a632cb8c56b2729f9c3873c9461bd",
      "parents": [
        "95e0d86badc410d525ea7218fd32df7bfbf9c837"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Thu Sep 24 04:22:25 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 18:13:10 2009 -0700"
      },
      "message": "headers: utsname.h redux\n\n* remove asm/atomic.h inclusion from linux/utsname.h --\n   not needed after kref conversion\n * remove linux/utsname.h inclusion from files which do not need it\n\nNOTE: it looks like fs/binfmt_elf.c do not need utsname.h, however\ndue to some personality stuff it _is_ needed -- cowardly leave ELF-related\nheaders and files alone.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2df54806389205d76bc3d1ce8a10cc14889ddec9",
      "tree": "7c1c170e39d50dd105792e25522e249ea371758e",
      "parents": [
        "4111d4fde6aa04a2e42c43d0e74593e6144b0f0f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Sep 23 14:36:39 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:39 2009 -0400"
      },
      "message": "NFS: Propagate \u0027fsc\u0027 mount option through automounts\n\nPropagate the NFS \u0027fsc\u0027 mount option through NFS automounts of various types.\n\nThis is now required as commit:\n\n\tcommit c02d7adf8c5429727a98bad1d039bccad4c61c50\n\tAuthor: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n\tDate:   Mon Jun 22 15:09:14 2009 -0400\n\n\tNFSv4: Replace nfs4_path_walk() with VFS path lookup in a private namespace\n\nuses VFS-driven automounting to reach all submounts barring the root, thus\npreventing fscaching from being enabled on any submount other than the root.\n\nThis patch gets around that by propagating the NFS_OPTION_FSCACHE flag across\nautomounts.  If a uniquifier is supplied to a mount then this is propagated to\nall automounts of that mount too.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n[Trond: Fixed up the definition of nfs_fscache_get_super_cookie for the\n        case of #undef CONFIG_NFS_FSCACHE]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9423a08ad5773d0a7612d434700561dc8346b6d6",
      "tree": "3d43b5d0bd90526f64d5f3950f25e539fa14ed63",
      "parents": [
        "61d0a8e6a8049cea246ee7ec19b042d4ff1f6ef6"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 23 14:36:38 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:38 2009 -0400"
      },
      "message": "NFS: Add nfs_alloc_parsed_mount_data\n\nAllocating nfs_parsed_mount_data and setting up the defaults is nearly\nthe same for both nfs and nfs4 mounts.\n\nBoth paths seem to use nfs_validate_transport_protocol(), so setting a\ndefault value for nfs_server.protocol ought to be unnecessary.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8a6e5deb8a8caa810fef2c525f5dbea2cfe04a47",
      "tree": "92e7e049e87955770eb3cddc495e1e0119402b85",
      "parents": [
        "7043078630bbc9eb908a56e08077c5abe7f2d311"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Sep 23 14:36:37 2009 -0400"
      },
      "message": "NFS: Get rid of the NFS_MOUNT_VER3 and NFS_MOUNT_TCP flags\n\nKeep it in the case of the legacy binary mount interface, but purge it from\nthe nfs_server structure.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88e9d34c727883d7d6f02cf1475b3ec98b8480c7",
      "tree": "475f544536d52739e0929e7727cab5124e855a06",
      "parents": [
        "b7ed698cc9d556306a4088c238e2ea9311ea2cb3"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Sep 22 16:43:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:29 2009 -0700"
      },
      "message": "seq_file: constify seq_operations\n\nMake all seq_operations structs const, to help mitigate against\nrevectoring user-triggerable function pointers.\n\nThis is derived from the grsecurity patch, although generated from scratch\nbecause it\u0027s simpler than extracting the changes from there.\n\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Casey Schaufler \u003ccasey@schaufler-ca.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "342ff1a1b558ebbdb8cbd55ab6a63eca8b2473ca",
      "tree": "1f967f283dade6e03897169bb29513354f49f910",
      "parents": [
        "50223e486cabdcf7e540e519da1f26bab3084e5d",
        "24ed7a97464db44592495f98cff8bcee02f92bc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:51:45 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (34 commits)\n  trivial: fix typo in aic7xxx comment\n  trivial: fix comment typo in drivers/ata/pata_hpt37x.c\n  trivial: typo in kernel-parameters.txt\n  trivial: fix typo in tracing documentation\n  trivial: add __init/__exit macros in drivers/gpio/bt8xxgpio.c\n  trivial: add __init macro/ fix of __exit macro location in ipmi_poweroff.c\n  trivial: remove unnecessary semicolons\n  trivial: Fix duplicated word \"options\" in comment\n  trivial: kbuild: remove extraneous blank line after declaration of usage()\n  trivial: improve help text for mm debug config options\n  trivial: doc: hpfall: accept disk device to unload as argument\n  trivial: doc: hpfall: reduce risk that hpfall can do harm\n  trivial: SubmittingPatches: Fix reference to renumbered step\n  trivial: fix typos \"man[ae]g?ment\" -\u003e \"management\"\n  trivial: media/video/cx88: add __init/__exit macros to cx88 drivers\n  trivial: fix typo in CONFIG_DEBUG_FS in gcov doc\n  trivial: fix missing printk space in amd_k7_smp_check\n  trivial: fix typo s/ketymap/keymap/ in comment\n  trivial: fix typo \"to to\" in multiple files\n  trivial: fix typos in comments s/DGBU/DBGU/\n  ...\n"
    },
    {
      "commit": "6aed62853c72e29f2c97bbac7712cb398e8c9437",
      "tree": "4362cfa98b6b588f84fb2241115b7ef5b5dfce55",
      "parents": [
        "6e1d5dcc2bbbe71dbf010c747e15739bef6b7218"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Mon Sep 21 17:01:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "const: make file_lock_operations const\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48d0764998ad4ab7570afab8bb3bee0fbfa55b2a",
      "tree": "7ad93edfbba609f7f7a730d66d47950630e203d3",
      "parents": [
        "87c6a9b253520b66e7f5e8f67a37a701eaa51cee"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 21 09:59:39 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 21 15:40:33 2009 +0200"
      },
      "message": "nfs: initialize the backing_dev_info when creating the server\n\nNFS may free the server structure without ever having used the\nbdi, so we either need to flag the bdi as being uninitialized or\ninitialize it up front. This does the latter.\n\nThis fixes a crash with mounting more than one NFS file system,\nshould people ever need that kind of obscure NFS functionality.\n\nTested-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "92f25053c0189f8d2887f837d3936cdca1cdf730",
      "tree": "42cb0d38ee8983fa31290c5c80322574c04f4d5a",
      "parents": [
        "6952b61de9984073289859073e8195ad0bee8fd5"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Sep 17 14:51:44 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Mon Sep 21 15:40:32 2009 +0200"
      },
      "message": "nfs: nfs_kill_super() should call bdi_unregister() after killing super\n\nOtherwise we could be attempting to flush data for a writeback\nthread and bdi that have already disappeared.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "a419aef8b858a2bdb98df60336063d28df4b272f",
      "tree": "1736f6650ec0bfc01074c489fc47396114099c5e",
      "parents": [
        "2944fcbe03d65a704f07e43efe14adb0d226fd09"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Tue Aug 18 11:18:35 2009 -0700"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Mon Sep 21 15:14:58 2009 +0200"
      },
      "message": "trivial: remove unnecessary semicolons\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "32a88aa1b6dfb901cec64e1898cac78d0f25028a",
      "tree": "51aa6f56ccfca53f495d015645373317bdee3647",
      "parents": [
        "c4a77a6c7dcff04a2abc7fe4b6b2ae605be41c5b"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:02:33 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:18:51 2009 +0200"
      },
      "message": "fs: Assign bdi in super_block\n\nWe do this automatically in get_sb_bdev() from the set_bdev_super()\ncallback. Filesystems that have their own private backing_dev_info\nmust assign that in -\u003efill_super().\n\nNote that -\u003es_bdi assignment is required for proper writeback!\n\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "1fe06ad89255c211fe100d7f690d10b161398df8",
      "tree": "826d32bf081a6729aeaa08fe42422e49a9b86f6f",
      "parents": [
        "2c96ce9f2084c1e04d02883e622f74a537a63aea"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Sep 15 15:10:20 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Sep 16 15:16:18 2009 +0200"
      },
      "message": "writeback: get rid of wbc-\u003efor_writepages\n\nIt\u0027s only set, it\u0027s never checked. Kill it.\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "f590f333fb15444d2971f979d434ecad56c09698",
      "tree": "c314ba6a451a84e4232699a5794cd91ffa71e7d8",
      "parents": [
        "aa261f549d7652258331ebb12795f3bc4395d213"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:17 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:17 2009 +0200"
      },
      "message": "HWPOISON: Enable error_remove_page for NFS\n\nEnable hardware memory error handling for NFS\n\nTruncation of data pages at runtime should be safe in NFS,\neven when it doesn\u0027t support migration so far.\n\nTrond tells me migration is also queued up for 2.6.32.\n\nAcked-by: Trond.Myklebust@netapp.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "ab3bbaa8b257845e248e9a01d12a69ca245f4197",
      "tree": "f3054be9bd612194826ed6969d01346d329c3306",
      "parents": [
        "332a3392188e0ad966543c87b8da2b9d246f301d",
        "2ecda72b49a0849ce41e7fa1fa974a245b9119f8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 11 14:59:37 2009 -0400"
      },
      "message": "Merge branch \u0027nfs-for-2.6.32\u0027\n"
    },
    {
      "commit": "d993831fa7ffeb89e994f046f93eeb09ec91df08",
      "tree": "da4f94bbf022c83988bda71adf1f1b3a88cb4592",
      "parents": [
        "f09b00d3e789a88fa6c7c03cedc62cb65c1de0cb"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Jun 12 14:45:52 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Fri Sep 11 09:20:26 2009 +0200"
      },
      "message": "writeback: add name to backing_dev_info\n\nThis enables us to track who does what and print info. Its main use\nis catching dirty inodes on the default_backing_dev_info, so we can\nfix that up.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "2ecda72b49a0849ce41e7fa1fa974a245b9119f8",
      "tree": "d0c4eb474536581d79ae41ab72cb24c10571c83a",
      "parents": [
        "764302ccb88dd0df062eccd507b6c6de24f1c560"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:07 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:07 2009 -0400"
      },
      "message": "NFSv4: Disallow \u0027mount -t nfs4 -overs\u003d2\u0027 and \u0027mount -t nfs4 -overs\u003d3\u0027\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "764302ccb88dd0df062eccd507b6c6de24f1c560",
      "tree": "00f9f1e80c07495e6649eccb17faf7b3d4f2a25a",
      "parents": [
        "a6fe23be90aa78783523a25330e09bfaa43a1581"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:50:03 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:03 2009 -0400"
      },
      "message": "NFS: Allow the \"nfs\" file system type to support NFSv4\n\nWhen mounting an \"nfs\" type file system, recognize \"v4,\" \"vers\u003d4,\" or\n\"nfsvers\u003d4\" mount options, and convert the file system to \"nfs4\" under\nthe covers.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\n[trondmy: fixed up binary mount code so it sets the \u0027version\u0027 field too]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a6fe23be90aa78783523a25330e09bfaa43a1581",
      "tree": "f77656861a6464f114e2e4bf5b9f5016bf18c0c5",
      "parents": [
        "7630c852e19c7fffb85b50d98eeb5516fec7c088"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:50:00 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:50:00 2009 -0400"
      },
      "message": "NFS: Move details of nfs4_get_sb() to a helper\n\nClean up: Refactor nfs4_get_sb() to allow its guts to be invoked by\nnfs_get_sb().\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7630c852e19c7fffb85b50d98eeb5516fec7c088",
      "tree": "cc22b94697a175eccf9b0f090854d93e9cf8de38",
      "parents": [
        "4cfd74fc99a41fdc161f243e1c16199656d33ab1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:49:57 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:49:57 2009 -0400"
      },
      "message": "NFS: Refactor NFSv4 text-based mount option validation\n\nClean up: Refactor the part of nfs4_validate_mount_options() that\nhandles text-based options, so we can call it from the NFSv2/v3\noption validation function.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4cfd74fc99a41fdc161f243e1c16199656d33ab1",
      "tree": "b92cb5a87dfeb13cc042768351ffda6a64d58713",
      "parents": [
        "dbab8360ed8abca38121109feab47c4bea895994"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Tue Sep 08 19:49:47 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:49:47 2009 -0400"
      },
      "message": "NFS: Mount option parser should detect missing \"port\u003d\"\n\nThe meaning of not specifying the \"port\u003d\" mount option is different\nfor \"-t nfs\" and \"-t nfs4\" mounts.  The default port value for\nNFSv2/v3 mounts is 0, but the default for NFSv4 mounts is 2049.\n\nTo support \"-t nfs -o vers\u003d4\", the mount option parser must detect\nwhen \"port\u003d\" is missing so that the correct default port value can be\nset depending on which NFS version is requested.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dbab8360ed8abca38121109feab47c4bea895994",
      "tree": "05e37cba3e719a5a93e416ac70fd5e6dde1151c9",
      "parents": [
        "5eecfde615894dc1c2e3f85b515a96ae2e408fb5"
      ],
      "author": {
        "name": "Harshula Jayasuriya",
        "email": "harshula@redhat.com",
        "time": "Tue Sep 08 19:49:33 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Sep 08 19:49:33 2009 -0400"
      },
      "message": "NFS: out of date comment regarding O_EXCL above nfs3_proc_create()\n\nHi Trond,\n\nRecently we were observing the behaviour difference between a 2.4.x and\n2.6.x kernel with respect to O_EXCL. A comment from 2.4.x era, \"For now,\nwe don\u0027t implement O_EXCL.\" seems inaccurate in TOT.\n\nIf so, here\u0027s a patch to remove the comment.\n\nThis patch is against:\ngit://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6\n\nSigned-off-by: Harshula Jayasuriya \u003charshula@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7111dc73923e9737b38a3ef5b5f236109000ff28",
      "tree": "a21d3fbdf710b8a5ecfede32b822368fea2cad40",
      "parents": [
        "2584e7986f235572d4b03bbe52fd1e85c1679b8e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 24 19:21:29 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 24 16:28:42 2009 -0700"
      },
      "message": "NFSv4: Fix an infinite looping problem with the nfs4_state_manager\n\nCommit 76db6d9500caeaa774a3e32a997eba30bbdc176b (nfs41: add session setup\nto the state manager) introduces an infinite loop possibility in the NFSv4\nstate manager. By first checking nfs4_has_session() before clearing the\nNFS4CLNT_SESSION_SETUP flag, it allows for a situation where someone sets\nthat flag, but it never gets cleared, and so the state manager loops.\n\nIn fact commit c3fad1b1aaf850bf692642642ace7cd0d64af0a3 (nfs41: add session\nreset to state manager) causes this to happen every time we get a network\npartition error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5eecfde615894dc1c2e3f85b515a96ae2e408fb5",
      "tree": "7bb8e5cb5b54b80181e5a433d71110f244d6037d",
      "parents": [
        "405d8f8b1d936414da2093d4149ff790ff3f84a5"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Fri Aug 21 17:50:30 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 23 23:43:57 2009 -0400"
      },
      "message": "NFS: Handle a zero-length auth flavor list\n\nSome releases of Linux rpc.mountd (nfs-utils 1.1.4 and later) return an\nempty auth flavor list if no sec\u003d was specified for the export.  This is\nnotably broken server behavior.\n\nThe new auth flavor list checking added in a recent commit rejects this\ncase.  The OpenSolaris client does too.\n\nThe broken mountd implementation is already widely deployed.  To avoid\na behavioral regression, the kernel\u0027s mount client skips flavor checking\n(ie reverts to the pre-2.6.32 behavior) if mountd returns an empty\nflavor list.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e1af88a1ad8f4dea3a2d6c5637d94a3fc3c62994",
      "tree": "ea94e8c93d1ae0eaac2a460e5821f53da428394f",
      "parents": [
        "f7e86ab92f2198d30828a1a327ad2085e4a7ff7d"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Aug 19 18:04:43 2009 +0200"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 19:48:08 2009 -0400"
      },
      "message": "nfs: Remove reference to generic_osync_inode from a comment\n\ngeneric_file_direct_write() no longer calls generic_osync_inode() so remove the\ncomment.\n\nCC: linux-nfs@vger.kernel.org\nCC: Neil Brown \u003cneilb@suse.de\u003e\nCC: \"J. Bruce Fields\" \u003cbfields@fieldses.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d7ea882898f23989209d0359691b356f73240dc",
      "tree": "8bd90c5c728302b8460f1f451d23168c8fc99433",
      "parents": [
        "e571cbf1a4f8d8b6cfd4898df718dae84c75a8e1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 18:12:34 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 18:22:15 2009 -0400"
      },
      "message": "NFS: Use the DNS resolver in the mount code.\n\nIn the referral code, use it to look up the new server\u0027s ip address if the\nfs_locations attribute contains a hostname.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e571cbf1a4f8d8b6cfd4898df718dae84c75a8e1",
      "tree": "0fc9da9692a1e63cff03053fc87cc807fab5e266",
      "parents": [
        "96c61cbd0f30496bfa57ed80f7131a57aea3e4de"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 18:12:27 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 18:22:15 2009 -0400"
      },
      "message": "NFS: Add a dns resolver for use with NFSv4 referrals and migration\n\nThe NFSv4 and NFSv4.1 protocols both allow for the redirection of a client\nfrom one server to another in order to support filesystem migration and\nreplication. For full protocol support, we need to add the ability to\nconvert a DNS host name into an IP address that we can feed to the RPC\nclient.\n\nWe\u0027ll reuse the sunrpc cache, now that it has been converted to work with\nrpc_pipefs.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6a396f67d2442e30150ffb5e1142dbb2f2181d3f",
      "tree": "2ea4f3ab1d3766204a55ec26600b848ed3a7e8aa",
      "parents": [
        "f884dcaead5f17bf586ac5fe6a3ad07b5203616a",
        "cccddf4f5580131c9b963900e1d3400655e633cc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 18:21:52 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 19 18:21:52 2009 -0400"
      },
      "message": "Merge branch \u0027nfsv4_xdr_cleanups-for-2.6.32\u0027 into nfs-for-2.6.32\n\nConflicts:\n\tfs/nfs/nfs4xdr.c\n"
    },
    {
      "commit": "cccddf4f5580131c9b963900e1d3400655e633cc",
      "tree": "656eec24843a3c3ae28ee5d227e8ade80aa31c1f",
      "parents": [
        "c0eae66ece40bdb8cd88c5106834b71a1c9f421c"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:20:19 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 14:02:26 2009 -0400"
      },
      "message": "nfs: nfs4xdr: optimize low level decoding\n\ndo not increment decoding ptr if not needed.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c0eae66ece40bdb8cd88c5106834b71a1c9f421c",
      "tree": "6a82749181b4898ea1d4e51d01a2a6c8e0803e73",
      "parents": [
        "2460ba57c49c36dfef0b62c929461de09240fe17"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:20:14 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 14:02:23 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of READ_BUF\n\nUse xdr_inline_decode instead.\nOpen code debug printout and error return.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2460ba57c49c36dfef0b62c929461de09240fe17",
      "tree": "27328a95049a11b6e817c6e168bdc4388463cebf",
      "parents": [
        "99398d0655ada44ae464a1c93d13cd438a306ecd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:20:10 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 14:02:20 2009 -0400"
      },
      "message": "nfs: nfs4xdr: simplify decode_exchange_id by reusing decode_opaque_inline\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99398d0655ada44ae464a1c93d13cd438a306ecd",
      "tree": "ddb1b493e36acb96af7444ea1dfebc7205fb88b9",
      "parents": [
        "e78291e4e07520348b0634095cf19ed3bc868965"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:20:05 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 14:02:17 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of COPYMEM\n\nJust directly call memcpy.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e78291e4e07520348b0634095cf19ed3bc868965",
      "tree": "454c29c73a333552fd8f69e8d5f082e16dc2750c",
      "parents": [
        "db942bbd09563e169cc5d9004c32c1de33220fd1"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:20:00 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 14:02:14 2009 -0400"
      },
      "message": "nfs: nfs4xdr: introduce decode_sessionid helper\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "db942bbd09563e169cc5d9004c32c1de33220fd1",
      "tree": "1618857c99448dc58aeb08515645a8171418b65e",
      "parents": [
        "07d30434cfe2f1a1553143c6b20f1fe68d2ef80a"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:56 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:57:58 2009 -0400"
      },
      "message": "nfs: nfs4xdr: introduce decode_verifier helper\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\n[Trond: Fixed up an \u0027uninitialised variable\u0027 issue in decode_readdir]\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "07d30434cfe2f1a1553143c6b20f1fe68d2ef80a",
      "tree": "936996af58783a24ce8ea2f3d5c87f4f8e9854c5",
      "parents": [
        "686841b3cc3a71918b45ed148be7a01a4f10e3f8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:52 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:26:27 2009 -0400"
      },
      "message": "nfs: nfs4xdr: introduce decode_opaque_fixed and decode_stateid helpers\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "686841b3cc3a71918b45ed148be7a01a4f10e3f8",
      "tree": "131c3cac6eaf3348b4c240fce4285d657a52a2ac",
      "parents": [
        "c816fd3406462702dee2e3859e70132c3aab7c10"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:48 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:24:38 2009 -0400"
      },
      "message": "nfs: nfs4xdr: introduce print_overflow_msg\n\nPart fo the nfs4xdr cleanup.  READ_BUF will go away.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c816fd3406462702dee2e3859e70132c3aab7c10",
      "tree": "510fd6c33ebe56c566d33d0068a9cc4f243f711e",
      "parents": [
        "3ceb4dbb993fdab6a6fafc69db36686278871134"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:44 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:24:32 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of READTIME\n\nIt has no users.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3ceb4dbb993fdab6a6fafc69db36686278871134",
      "tree": "4ca8c09861175fae937ad1a869d045bae283a282",
      "parents": [
        "6f723f7710024bb151ca8c5277ce8c71beec4db8"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:41 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:24:13 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of READ64\n\ns/READ64\\(\\*(.*)\\)/p \u003d xdr_decode_hyper(p, \\1)/\ns/READ64\\((.*)\\)/p \u003d xdr_decode_hyper(p, \u0026\\1)/\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6f723f7710024bb151ca8c5277ce8c71beec4db8",
      "tree": "7f5b65f1bed759aae76a258a02693b12976073fc",
      "parents": [
        "811652bd6edd66dd35bf9caacdfe96d19f75a47e"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:37 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:23:58 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of READ32\n\ns/READ32\\((.*)\\)/\\1 \u003d be32_to_cpup(p++)/\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "811652bd6edd66dd35bf9caacdfe96d19f75a47e",
      "tree": "58e2a25334e878c207f3e9a7a423881cf7d69974",
      "parents": [
        "345585132a204859fbb7d8b662e9b6e5b563c6dc"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:34 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:19:24 2009 -0400"
      },
      "message": "nfs: nfs4xdr: merge xdr_encode_int+xdr_encode_opaque_fixed into xdr_encode_opaque\n\nuse encode_string where appropriate.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "345585132a204859fbb7d8b662e9b6e5b563c6dc",
      "tree": "12687faa2e42b5ccfdb02a3e8110884a92b50502",
      "parents": [
        "13c65ce90006badccd5663e558e3c85869ae5ce6"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:30 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:18:03 2009 -0400"
      },
      "message": "nfs: nfs4xdr: optimize low level encoding\n\ndo not increment encoding ptr if not needed.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "13c65ce90006badccd5663e558e3c85869ae5ce6",
      "tree": "9a88d57aba72e38f3bf55344b8a94212b9d2ddcd",
      "parents": [
        "2220f13a8b90d2259f3094cb54cf4de67d8eee2d"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:25 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:17:17 2009 -0400"
      },
      "message": "nfs: nfs4xdr: change RESERVE_SPACE macro into a static helper\n\nIn order to open code and expose the result pointer assignment.\n\nAlternatively, we can open code the call to xdr_reserve_space\nand do the BUG_ON an the error case at the call site.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2220f13a8b90d2259f3094cb54cf4de67d8eee2d",
      "tree": "ab7aa286938009cda8fcaf06ad924eff23fae2fc",
      "parents": [
        "42edd698125b76a38bd9999015202db036dfbc76"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:18 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:16:00 2009 -0400"
      },
      "message": "nfs: nfs4xdr: encode_compound_hdr does not have to round up reserved bytes\n\nThis is already done by xdr_reserve_space and since encode_compound_hdr\nis adding a byte count to \"12\" which is already word aligned, the xdr\nlevel rounding will work just as well.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "42edd698125b76a38bd9999015202db036dfbc76",
      "tree": "1a6557173bc670da1010faccee9284dcd9ce2a54",
      "parents": [
        "93f0cf25944695e1229fe90a2897af0211fbd425"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:13 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:15:20 2009 -0400"
      },
      "message": "nfs: nfs4xdr: optimize RESERVE_SPACE in encode_create_session and encode_sequence\n\nCoalesce multilpe constant RESERVE_SPACEs into one\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "93f0cf25944695e1229fe90a2897af0211fbd425",
      "tree": "fa795e01a73740eac6f6b0b4578c785c703972f1",
      "parents": [
        "b95be5a976848febff82edb21d5b4351b3997bf6"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:06 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:13:58 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of WRITEMEM\n\ns/WRITEMEM(/p \u003d xdr_encode_opaque_fixed(p, /\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b95be5a976848febff82edb21d5b4351b3997bf6",
      "tree": "1dcfed3152791c6269229f0b8d569a6df0f04018",
      "parents": [
        "e75bc1c89e0c7dda0b140408ddee2ffaef7ba6d4"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:19:01 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:13:15 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of WRITE64\n\ns/WRITE64/p \u003d xdr_encode_hyper(p, /\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e75bc1c89e0c7dda0b140408ddee2ffaef7ba6d4",
      "tree": "615a5e619174d5c0222e52793a979e1c0cce8e43",
      "parents": [
        "98866b5abe1513cdacc011874ca045d40002eccd"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Fri Aug 14 17:18:54 2009 +0300"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 14 13:12:55 2009 -0400"
      },
      "message": "nfs: nfs4xdr: get rid of WRITE32\n\ns/WRITE32/*p++ \u003d cpu_to_be32/\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1ae88b2e446261c038f2c0c3150ffae142b227a2",
      "tree": "b3c9c11e4391c59086308e2674661688db5b12f5",
      "parents": [
        "7cb7beb31aa3d941833b6a6e553687422c31e4b6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 12 09:12:30 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 12 08:21:39 2009 -0700"
      },
      "message": "NFS: Fix an O_DIRECT Oops...\n\nWe can\u0027t call nfs_readdata_release()/nfs_writedata_release() without\nfirst initialising and referencing args.context. Doing so inside\nnfs_direct_read_schedule_segment()/nfs_direct_write_schedule_segment()\ncauses an Oops.\n\nWe should rather be calling nfs_readdata_free()/nfs_writedata_free() in\nthose cases.\n\nLooking at the O_DIRECT code, the \"struct nfs_direct_req\" is already\nreferencing the nfs_open_context for us. Since the readdata and writedata\nstructures carry a reference to that, we can simplify things by getting rid\nof the extra nfs_open_context references, so that we can replace all\ninstances of nfs_readdata_release()/nfs_writedata_release().\n\nReported-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nTested-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f884dcaead5f17bf586ac5fe6a3ad07b5203616a",
      "tree": "2406444df167f1d67b38733b544f2e2a96c778c7",
      "parents": [
        "976a6f921cad26651d25e73826c05c7a023f5fa4",
        "8854e82d9accc80f43c0bc3ff06b5979ac858185"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:58 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:58 2009 -0400"
      },
      "message": "Merge branch \u0027sunrpc_cache-for-2.6.32\u0027 into nfs-for-2.6.32\n"
    },
    {
      "commit": "976a6f921cad26651d25e73826c05c7a023f5fa4",
      "tree": "b06e283e3fe342bcf444328390b211bb155fd9dc",
      "parents": [
        "e576e05a73bc1a00cdf56630942dbada1bf280a1",
        "c05988cdb06237738d361ef82fbf4df1020aa3db"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:50 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 17:45:50 2009 -0400"
      },
      "message": "Merge branch \u0027patches_cel-for-2.6.32\u0027 into nfs-for-2.6.32\n"
    },
    {
      "commit": "e576e05a73bc1a00cdf56630942dbada1bf280a1",
      "tree": "d32f477a91b01bcdbccc272be2ebaaef287421bb",
      "parents": [
        "38c73044f5f4da2ef4339319b170e5e19f8dec87"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "message": "nfs: remove superfluous BUG_ON()s\nSubject: [PATCH] nfs: remove superfluous BUG_ON()s\n\nRemove duplicated BUG_ON()s from nfs[4]_create_server()\n(we make the same checks earlier in both functions).\n\nThis takes care of the following entries from Dan\u0027s list:\n\nfs/nfs/client.c +1078 nfs_create_server(47) warning: variable derefenced before check \u0027server-\u003enfs_client\u0027\nfs/nfs/client.c +1079 nfs_create_server(48) warning: variable derefenced before check \u0027server-\u003enfs_client-\u003erpc_ops\u0027\nfs/nfs/client.c +1363 nfs4_create_server(43) warning: variable derefenced before check \u0027server-\u003enfs_client\u0027\nfs/nfs/client.c +1364 nfs4_create_server(44) warning: variable derefenced before check \u0027server-\u003enfs_\n\nReported-by: Dan Carpenter \u003cerror27@gmail.com\u003e\nCc: corbet@lwn.net\nCc: eteo@redhat.com\nCc: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "38c73044f5f4da2ef4339319b170e5e19f8dec87",
      "tree": "68f8bde12bf64eba00164cacdb895a164b5795d4",
      "parents": [
        "074cc1deec5dee63fcd5d966b36fa4f3765b50fc"
      ],
      "author": {
        "name": "Peter Staubach",
        "email": "staubach@redhat.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:16 2009 -0400"
      },
      "message": "NFS: read-modify-write page updating\n\nHi.\n\nI have a proposal for possibly resolving this issue.\n\nI believe that this situation occurs due to the way that the\nLinux NFS client handles writes which modify partial pages.\n\nThe Linux NFS client handles partial page modifications by\nallocating a page from the page cache, copying the data from\nthe user level into the page, and then keeping track of the\noffset and length of the modified portions of the page.  The\npage is not marked as up to date because there are portions\nof the page which do not contain valid file contents.\n\nWhen a read call comes in for a portion of the page, the\ncontents of the page must be read in the from the server.\nHowever, since the page may already contain some modified\ndata, that modified data must be written to the server\nbefore the file contents can be read back in the from server.\nAnd, since the writing and reading can not be done atomically,\nthe data must be written and committed to stable storage on\nthe server for safety purposes.  This means either a\nFILE_SYNC WRITE or a UNSTABLE WRITE followed by a COMMIT.\nThis has been discussed at length previously.\n\nThis algorithm could be described as modify-write-read.  It\nis most efficient when the application only updates pages\nand does not read them.\n\nMy proposed solution is to add a heuristic to decide whether\nto do this modify-write-read algorithm or switch to a read-\nmodify-write algorithm when initially allocating the page\nin the write system call path.  The heuristic uses the modes\nthat the file was opened with, the offset in the page to\nread from, and the size of the region to read.\n\nIf the file was opened for reading in addition to writing\nand the page would not be filled completely with data from\nthe user level, then read in the old contents of the page\nand mark it as Uptodate before copying in the new data.  If\nthe page would be completely filled with data from the user\nlevel, then there would be no reason to read in the old\ncontents because they would just be copied over.\n\nThis would optimize for applications which randomly access\nand update portions of files.  The linkage editor for the\nC compiler is an example of such a thing.\n\nI tested the attached patch by using rpmbuild to build the\ncurrent Fedora rawhide kernel.  The kernel without the\npatch generated about 269,500 WRITE requests.  The modified\nkernel containing the patch generated about 261,000 WRITE\nrequests.  Thus, about 8,500 fewer WRITE requests were\ngenerated.  I suspect that many of these additional\nWRITE requests were probably FILE_SYNC requests to WRITE\na single page, but I didn\u0027t test this theory.\n\nThe difference between this patch and the previous one was\nto remove the unneeded PageDirty() test.  I then retested to\nensure that the resulting system continued to behave as\ndesired.\n\n\tThanx...\n\n\t\tps\n\nSigned-off-by: Peter Staubach \u003cstaubach@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "074cc1deec5dee63fcd5d966b36fa4f3765b50fc",
      "tree": "14508949385a168ab2e43ca5bf7423473f25d839",
      "parents": [
        "c140aa91357c415c91269884518fa1d6fdebc20d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:13 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Aug 10 08:54:13 2009 -0400"
      },
      "message": "NFS: Add a -\u003emigratepage() aop for NFS\n\nMake NFS a bit more friendly to NUMA and memory hot removal...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d217caca5d704e48aa5e59aba0b3ad4c7af4fd2",
      "tree": "d8d5fcac59d736f1b8c9769e7d3f5aec6d1b5428",
      "parents": [
        "7d59d1e86531a53d7648726ab8a6a670ecbd8f06"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:24 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:24 2009 -0400"
      },
      "message": "SUNRPC: Replace rpc_client-\u003ecl_dentry and cl_mnt, with a cl_path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b693ba4a338da15db1db4b5ebaa36e4ab9781c82",
      "tree": "6c16b9ef282af0e958fa216310d4552303b525d5",
      "parents": [
        "7b2aa037e878c939676675969983284a02958ae3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:15 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:14:15 2009 -0400"
      },
      "message": "SUNRPC: Constify rpc_pipe_ops...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec6ee61250acfccbc5578dd4014735fb2cbe53b5",
      "tree": "90c93d506b82d7c67ed8208410a1024e872f9c8d",
      "parents": [
        "53a0b9c4c99ab0085a06421f71592722e5b3fd5f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:37 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:37 2009 -0400"
      },
      "message": "NFS: Replace nfs_set_port() with rpc_set_port()\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": "53a0b9c4c99ab0085a06421f71592722e5b3fd5f",
      "tree": "e1e072cc5e7b8ee9c82966dddb6629923ea11be3",
      "parents": [
        "c877b849d302d1275452af80b7221a2555dc02e1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:36 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:36 2009 -0400"
      },
      "message": "NFS: Replace nfs_parse_ip_address() with rpc_pton()\n\nClean up: Use the common routine now provided in sunrpc.ko for parsing mount\naddresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a02d692611348f11ee1bc37431a883c3ff2de23e",
      "tree": "5a2ad4862784b4337846b44ddd816e495484086f",
      "parents": [
        "0b10bf5e14d856d1d27a2117d07af2bebee81b75"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:34 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:34 2009 -0400"
      },
      "message": "SUNRPC: Provide functions for managing universal addresses\n\nIntroduce a set of functions in the kernel\u0027s RPC implementation for\nconverting between a socket address and either a standard\npresentation address string or an RPC universal address.\n\nThe universal address functions will be used to encode and decode\nRPCB_FOO and NFSv4 SETCLIENTID arguments.  The other functions are\npart of a previous promise to deliver shared functions that can be\nused by upper-layer protocols to display and manipulate IP\naddresses.\n\nThe kernel\u0027s current address printf formatters were designed\nspecifically for kernel to user-space APIs that require a particular\nstring format for socket addresses, thus are somewhat limited for the\npurposes of sunrpc.ko.  The formatter for IPv6 addresses, %pI6, does\nnot support short-handing or scope IDs.  Also, these printf formatters\nare unique per address family, so a separate formatter string is\nrequired for printing AF_INET and AF_INET6 addresses.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec88f28d1eb77346f19ca324ceec76e645cdd9da",
      "tree": "673457f29da29179be1dc368e5c5fcc75c0cecf3",
      "parents": [
        "059f90b323c0f5d34656ab7e0548d7d033c2a51a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:32 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:32 2009 -0400"
      },
      "message": "NFS: Use the authentication flavor list returned by mountd\n\nCommit a14017db added support in the kernel\u0027s NFS mount client to\ndecode the authentication flavor list returned by mountd.\n\nThe NFS client can now use this list to determine whether the\nauthentication flavor requested by the user is actually supported\nby the server.\n\nNote we don\u0027t actually negotiate the security flavor if none was\nspecified by the user.  Instead, we try to use AUTH_SYS, and fail if\nthe server does not support it.  This prevents us from negotiating\nan inappropriate security flavor (some servers list AUTH_NULL first).\n\nIf the server does not support AUTH_SYS, the user must provide an\nappropriate security flavor by specifying the \"sec\u003d\" mount option.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "059f90b323c0f5d34656ab7e0548d7d033c2a51a",
      "tree": "00886f92addd883a30f100219605c2c46eecb879",
      "parents": [
        "0b524123c93893391ec9e6c9b04998a45235f9c8"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:31 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:31 2009 -0400"
      },
      "message": "NFS: Fix auth flavor len accounting\n\nPrevious logic in the NFS mount parsing code path assumed\nauth_flavor_len was set to zero for simple authentication flavors\n(like AUTH_UNIX), and 1 for compound flavors (like AUTH_GSS).\n\nAt some earlier point (maybe even before the option parsers were\nmerged?) specific checks for auth_flavor_len being zero were removed\nfrom the functions that validate the mount option that sets the mount\npoint\u0027s authentication flavor.\n\nSince we are populating an array for authentication flavors, the\nauth_flavor_len should always be set to the number of flavors.  Let\u0027s\neliminate some cleverness here, and prepare for new logic that needs\nto know the number of flavors in the auth_flavors[] array.\n\n(auth_flavors[] is an array because at some point we want to allow a\nlist of acceptable authentication flavors to be specified via the sec\u003d\nmount option.  For now it remains a single element array).\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0b524123c93893391ec9e6c9b04998a45235f9c8",
      "tree": "6e65a65ecf9968803e712ccc7063cca4385757e0",
      "parents": [
        "f3f4f4ed26b116f621596f74d42d2b736171e968"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:30 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:30 2009 -0400"
      },
      "message": "NFS: Add ability to send MOUNTPROC_UMNT to the kernel\u0027s mountd client\n\nAfter certain failure modes of an NFS mount, an NFS client should send\na MOUNTPROC_UMNT request to remove the just-added mount entry from the\nserver\u0027s mount table.  While no-one should rely on the accuracy of the\nserver\u0027s mount table, sending a UMNT is simply being a good internet\nneighbor.\n\nSince NFS mount processing is handled in the kernel now, we will need\na function in the kernel\u0027s mountd client that can post a MOUNTRPC_UMNT\nrequest, in order to handle these failure modes.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f3f4f4ed26b116f621596f74d42d2b736171e968",
      "tree": "3e709094beba4b302c9a6a08afa9a3e2f0b8d3b1",
      "parents": [
        "7b2aa037e878c939676675969983284a02958ae3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Sun Aug 09 15:09:29 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:09:29 2009 -0400"
      },
      "message": "NFS: Fix up new minorversion\u003d option\n\nThe new minorversion\u003d mount option (commit 3fd5be9e) was merged at\nthe same time as the recent sloppy parser fixes (commit a5a16bae),\nso minorversion\u003d still uses the old value parsing logic.\n\nIf the minorversion\u003d option specifies a bogus value, it should fail\nwith \"bad value\" not \"bad option.\"\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c140aa91357c415c91269884518fa1d6fdebc20d",
      "tree": "a625131708c2c8a121ae5875c2529428f21b740e",
      "parents": [
        "cbf1107126af2950623fafdaa5c9df43ab00f046"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Clean up the nfs.callback_tcpport option\n\nTighten up the validity checking in param_set_port: check for NULL pointers.\nEnsure that the option shows up on \u0027modinfo\u0027 output.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "80e52aced138bb41b045a8595a87510f27d8d8c5",
      "tree": "5c709149f71dd7fc67f33dfc35ecbd7bc6e02ab8",
      "parents": [
        "62ab460cf5e450e1d207a98a9c6cf2e4a6a78fd1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Don\u0027t do idmapper upcalls for asynchronous RPC calls\n\nWe don\u0027t want to cause rpciod to hang...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "62ab460cf5e450e1d207a98a9c6cf2e4a6a78fd1",
      "tree": "595ca70261f46b93bda1998285e5f5c7da684cbc",
      "parents": [
        "a78cb57a106fceeba26da2907db9d8886700e1dc"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Add \u0027server capability\u0027 flags for NFSv4 recommended attributes\n\nIf the NFSv4 server doesn\u0027t support a POSIX attribute, the generic NFS code\nneeds to know that, so that it don\u0027t keep trying to poll for it.\n\nHowever, by the same count, if the NFSv4 server does support that\nattribute, then we should ensure that the inode metadata is appropriately\nlabelled as being untrusted. For instance, if we don\u0027t know the correct\nvalue of the file\u0027s uid, we should certainly not be caching ACLs or ACCESS\nresults.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a78cb57a106fceeba26da2907db9d8886700e1dc",
      "tree": "d9127810fa7f9d68232488bf33b947195c5d1e26",
      "parents": [
        "dd8ac1da4190139de70da18823ff8f5992a649ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "NFSv4: Don\u0027t loop forever on state recovery failure...\n\nIf the server is broken, then retrying forever won\u0027t fix it. We\nshould just give up after a while, and return an error to the user.\nWe set the number of retries to 10 for now...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dd8ac1da4190139de70da18823ff8f5992a649ae",
      "tree": "7ea277a5ef6a17aa43aafc89697dd8ca961f35b2",
      "parents": [
        "7b2aa037e878c939676675969983284a02958ae3"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Aug 09 15:06:19 2009 -0400"
      },
      "message": "nfs: Keep index within mnt_errtbl[]\n\nEnsure that index i remains within array mnt_errtbl[] and mnt3_errtbl[].\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d953126a28f97ec965d23c69fd5795854c048f30",
      "tree": "d3f239909dac00e1bc7882a783b8b63b20345d4d",
      "parents": [
        "fccba8045537f7e840d0e7565e1989d465e488a3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 19:22:38 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 19:22:38 2009 -0400"
      },
      "message": "NFSv4: Fix a problem whereby a buggy server can oops the kernel\n\nWe just had a case in which a buggy server occasionally returns the wrong\nattributes during an OPEN call. While the client does catch this sort of\ncondition in nfs4_open_done(), and causes the nfs4_atomic_open() to return\n-EISDIR, the logic in nfs_atomic_lookup() is broken, since it causes a\nfallback to an ordinary lookup instead of just returning the error.\n\nWhen the buggy server then returns a regular file for the fallback lookup,\nthe VFS allows the open, and bad things start to happen, since the open\nfile doesn\u0027t have any associated NFSv4 state.\n\nThe fix is firstly to return the EISDIR/ENOTDIR errors immediately, and\nsecondly to ensure that we are always careful when dereferencing the\nnfs_open_context state pointer.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fccba8045537f7e840d0e7565e1989d465e488a3",
      "tree": "89d80da7e017240e5a1d20c79501459c886fd007",
      "parents": [
        "b64aec8d1e1d8482a7b6cca60c8105c756bf1fe4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:48:07 2009 -0400"
      },
      "message": "NFSv4: Fix an NFSv4 mount regression\n\nCommit 008f55d0e019943323c20a03493a2ba5672a4cc8 (nfs41: recover lease in\n_nfs4_lookup_root) forces the state manager to always run on mount. This is\na bug in the case of NFSv4.0, which doesn\u0027t require us to send a\nsetclientid until we want to grab file state.\n\nIn any case, this is completely the wrong place to be doing state\nmanagement. Moving that code into nfs4_init_session...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b64aec8d1e1d8482a7b6cca60c8105c756bf1fe4",
      "tree": "022958ab88c3e6a7c9372e50cedb588e73462b57",
      "parents": [
        "aea1f7964ae6cba5eb419a958956deb9016b3341"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:47:46 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 21 16:47:46 2009 -0400"
      },
      "message": "NFSv4: Fix an Oops in nfs4_free_lock_state\n\nThe oops http://www.kerneloops.org/raw.php?rawid\u003d537858\u0026msgid\u003d appears to\nbe due to the nfs4_lock_state-\u003els_state field being uninitialised. This\nhappens if the call to nfs4_free_lock_state() is triggered at the end of\nnfs4_get_lock_state().\n\nThe fix is to move the initialisation of ls_state into the allocator.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "405f55712dfe464b3240d7816cc4fe4174831be2",
      "tree": "96c425ea7fa8b31058b8f83a433c5e5265c8ebc7",
      "parents": [
        "f9fabcb58a6d26d6efde842d1703ac7cfa9427b6"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Sat Jul 11 22:08:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 12 12:22:34 2009 -0700"
      },
      "message": "headers: smp_lock.h redux\n\n* Remove smp_lock.h from files which don\u0027t need it (including some headers!)\n* Add smp_lock.h to files which do need it\n* Make smp_lock.h include conditional in hardirq.h\n  It\u0027s needed only for one kernel_locked() usage which is under CONFIG_PREEMPT\n\n  This will make hardirq.h inclusion cheaper for every PREEMPT\u003dn config\n  (which includes allmodconfig/allyesconfig, BTW)\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81e4e1ba7ed4a1fdcf0e2ee944f1575010471464",
      "tree": "a97bd3c8ec33dd18598169db83555bf5bd237b91",
      "parents": [
        "373c0a7ed3ea3b34efedb7c83ffb521adff7c894"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 11 11:22:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jul 11 11:22:34 2009 -0700"
      },
      "message": "Revert \"fuse: Fix build error\" as unnecessary\n\nThis reverts commit 097041e576ee3a50d92dd643ee8ca65bf6a62e21.\n\nTrond had a better fix, which is the parent of this one (\"Fix compile\nerror due to congestion_wait() changes\")\n\nRequested-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Larry Finger \u003cLarry.Finger@lwfinger.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "097041e576ee3a50d92dd643ee8ca65bf6a62e21",
      "tree": "103bb259744701fb702015d539ecb4fe12a0fb83",
      "parents": [
        "69ca06c9454169c4a9303e8834adae9080f94859"
      ],
      "author": {
        "name": "Larry Finger",
        "email": "Larry.Finger@lwfinger.net",
        "time": "Fri Jul 10 20:06:42 2009 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 10 19:09:46 2009 -0700"
      },
      "message": "fuse: Fix build error\n\nWhen building v2.6.31-rc2-344-g69ca06c, the following build errors are\nfound due to missing includes:\n\n CC [M]  fs/fuse/dev.o\nfs/fuse/dev.c: In function ‘request_end’:\nfs/fuse/dev.c:289: error: ‘BLK_RW_SYNC’ undeclared (first use in this function)\n...\nfs/nfs/write.c: In function ‘nfs_set_page_writeback’:\nfs/nfs/write.c:207: error: ‘BLK_RW_ASYNC’ undeclared (first use in this function)\n\nSigned-off-by: Larry Finger@lwfinger.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8aa7e847d834ed937a9ad37a0f2ad5b8584c1ab0",
      "tree": "76c8b4f1362a928d426f2201790ab5d128f57724",
      "parents": [
        "c2cc49a2f8a479dde96a599646d30b6cc9dbed78"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Jul 09 14:52:32 2009 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@carl.(none)",
        "time": "Fri Jul 10 20:31:53 2009 +0200"
      },
      "message": "Fix congestion_wait() sync/async vs read/write confusion\n\nCommit 1faa16d22877f4839bd433547d770c676d1d964c accidentally broke\nthe bdi congestion wait queue logic, causing us to wait on congestion\nfor WRITE (\u003d\u003d 1) when we really wanted BLK_RW_ASYNC (\u003d\u003d 0) instead.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "b43f3cbd21ffbd719fd4fa6642bfe6af255ded34",
      "tree": "f09372f7aa3057a4cca32d5c7fc19032bd7cda5a",
      "parents": [
        "622f8061a68d3f7a576c20a47b7f3bae7c8cfbef"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Jul 08 01:54:37 2009 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 08 09:31:56 2009 -0700"
      },
      "message": "headers: mnt_namespace.h redux\n\nFix various silly problems wrt mnt_namespace.h:\n\n - exit_mnt_ns() isn\u0027t used, remove it\n - done that, sched.h and nsproxy.h inclusions aren\u0027t needed\n - mount.h inclusion was need for vfsmount_lock, but no longer\n - remove mnt_namespace.h inclusion from files which don\u0027t use anything\n   from mnt_namespace.h\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b88f8a546f5dba213938fdfc11e66bc5c2421623",
      "tree": "4048d84046bc47d715651fdd375eabbea065bad6",
      "parents": [
        "0b75b35c7cad33e7613f5adf28fa10fe8b09b1c3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 22 15:09:14 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:28:25 2009 -0700"
      },
      "message": "NFS: Correct the NFS mount path when following a referral\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b75b35c7cad33e7613f5adf28fa10fe8b09b1c3",
      "tree": "92b9987a33dc791aed752469ea7aed6e00a63b36",
      "parents": [
        "c02d7adf8c5429727a98bad1d039bccad4c61c50"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 22 15:09:14 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:28:25 2009 -0700"
      },
      "message": "NFS: Fix nfs_path() to always return a \u0027/\u0027 at the beginning of the path\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c02d7adf8c5429727a98bad1d039bccad4c61c50",
      "tree": "10f9a95817f6491426b80f0353eed54964dc1b90",
      "parents": [
        "cf8d2c11cb77f129675478792122f50827e5b0ae"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Jun 22 15:09:14 2009 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 21:28:25 2009 -0700"
      },
      "message": "NFSv4: Replace nfs4_path_walk() with VFS path lookup in a private namespace\n\nAs noted in the previous patch, the NFSv4 client mount code currently\nhas several limitations. If the mount path contains symlinks, or\nreferrals, or even if it just contains a \u0027..\u0027, then the client code in\nnfs4_path_walk() will fail with an error.\n\nThis patch replaces the nfs4_path_walk()-based lookup with a helper\nfunction that sets up a private namespace to represent the namespace on the\nserver, then uses the ordinary VFS and NFS path lookup code to walk down the\nmount path in that namespace.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e0338c0de18c50f09aea1fbef45110cf7d64a3c",
      "tree": "30a935c1f6eee7125a9fbb802a33292b1f7268fa",
      "parents": [
        "df36b439c5fedefe013d4449cb6a50d15e2f4d70",
        "47fcb03fefee2501e79176932a4184fc24d6f8ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 12:55:50 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 22 12:55:50 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.31\u0027 of git://fieldses.org/git/linux-nfsd\n\n* \u0027for-2.6.31\u0027 of git://fieldses.org/git/linux-nfsd: (60 commits)\n  SUNRPC: Fix the TCP server\u0027s send buffer accounting\n  nfsd41: Backchannel: minorversion support for the back channel\n  nfsd41: Backchannel: cleanup nfs4.0 callback encode routines\n  nfsd41: Remove ip address collision detection case\n  nfsd: optimise the starting of zero threads when none are running.\n  nfsd: don\u0027t take nfsd_mutex twice when setting number of threads.\n  nfsd41: sanity check client drc maxreqs\n  nfsd41: move channel attributes from nfsd4_session to a nfsd4_channel_attr struct\n  NFS: kill off complicated macro \u0027PROC\u0027\n  sunrpc: potential memory leak in function rdma_read_xdr\n  nfsd: minor nfsd_vfs_write cleanup\n  nfsd: Pull write-gathering code out of nfsd_vfs_write\n  nfsd: track last inode only in use_wgather case\n  sunrpc: align cache_clean work\u0027s timer\n  nfsd: Use write gathering only with NFSv2\n  NFSv4: kill off complicated macro \u0027PROC\u0027\n  NFSv4: do exact check about attribute specified\n  knfsd: remove unreported filehandle stats counters\n  knfsd: fix reply cache memory corruption\n  knfsd: reply cache cleanups\n  ...\n"
    },
    {
      "commit": "578e4585685410cacd1a4ac86b7e3c12805be918",
      "tree": "57e2a3730e19a6332ad54e6570768f964b781e58",
      "parents": [
        "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81"
      ],
      "author": {
        "name": "Benny Halevy",
        "email": "bhalevy@panasas.com",
        "time": "Thu Jun 18 22:01:23 2009 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Jun 20 14:55:12 2009 -0400"
      },
      "message": "nfs41: Move initialization of nfs4_opendata seq_res to nfs4_init_opendata_res\n\nnfs4_open_recover_helper clears opendata-\u003eo_res\nbefore calling nfs4_init_opendata_res, thus causing\nNFSv4.0 OPEN operations to be sent rather than nfsv4.1.\n\nSigned-off-by: Benny Halevy \u003cbhalevy@panasas.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1f84603c0940d5bed17f7e4d2e0b2a4b8b8f1b81",
      "tree": "143956f878290e85de7c9130f465e862f587ee53",
      "parents": [
        "301933a0acfdec837fd8b4884093b3f0fff01d8a",
        "4bf259e3ae5015e73282ba66716c4a917e1264ac"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:13:00 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 18 18:13:44 2009 -0700"
      },
      "message": "Merge branch \u0027devel-for-2.6.31\u0027 into for-2.6.31\n\nConflicts:\n\tfs/nfs/client.c\n\tfs/nfs/super.c\n"
    },
    {
      "commit": "4bf259e3ae5015e73282ba66716c4a917e1264ac",
      "tree": "4c79623911d24d86da799cee2797378a6a2a1181",
      "parents": [
        "a5a16bae707cd5d2bc97d7bd1a30079f18113a77"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Wed Jun 17 18:02:14 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:02:14 2009 -0700"
      },
      "message": "nfs: remove unnecessary NFS_INO_INVALID_ACL checks\n\nUnless I\u0027m mistaken, NFS_INO_INVALID_ACL is being checked twice during\ngetacl calls (i.e. first via nfs_revalidate_inode() and then by each all\nsite).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a5a16bae707cd5d2bc97d7bd1a30079f18113a77",
      "tree": "dbd8012bbba334e92edae060806eebc73d4338ad",
      "parents": [
        "d23c45fd84f79a3b84899dac053dcafe9d43ebc9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 17 18:02:14 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:02:14 2009 -0700"
      },
      "message": "NFS: More \"sloppy\" parsing problems\n\nSpecifying \"port\u003d-5\" with the kernel\u0027s current mount option parser\ngenerates \"unrecognized mount option\".  If \"sloppy\" is set, this\ncauses the mount to succeed and use the default values; the desired\nbehavior is that, since this is a valid option with an invalid value,\nthe mount should fail, even with \"sloppy.\"\n\nTo properly handle \"sloppy\" parsing, we need to distinguish between\ncorrect options with invalid values, and incorrect options.  We will\nneed to parse integer values by hand, therefore, and not rely on\nmatch_token().\n\nFor instance, these must all fail with \"invalid value\":\n\n\tport\u003d12345678\n\tport\u003d-5\n\tport\u003dsamuel\n\nand not with \"unrecognized option,\" as they do currently.\n\nThus, for the sake of match_token() we need to treat the values for\nthese options as strings, and do the conversion to integers using\nstrict_strtol().\n\nThis is basically the same solution we used for the earlier \"retry\u003d\"\nfix (commit ecbb3845), except in this case the kernel actually has to\nparse the value, rather than ignore it.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d23c45fd84f79a3b84899dac053dcafe9d43ebc9",
      "tree": "38586e19ef996fdf12a11baf01ac3e62a9f56475",
      "parents": [
        "065015e5efff60884ad600a3e9a5127dbb684429"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Jun 17 18:02:13 2009 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 17 18:02:13 2009 -0700"
      },
      "message": "NFS: Invalid mount option values should always fail, even with \"sloppy\"\n\nIan Kent reports:\n\n\"I\u0027ve noticed a couple of other regressions with the options vers\nand proto option of mount.nfs(8).\n\nThe commands:\n\nmount -t nfs -o vers\u003d\u003cinvalid version\u003e \u003cserver\u003e:/\u003cpath\u003e /\u003cmountpoint\u003e\nmount -t nfs -o proto\u003d\u003cinvalid proto\u003e \u003cserver\u003e:/\u003cpath\u003e /\u003cmountpoint\u003e\n\nboth immediately fail.\n\nBut if the \"-s\" option is also used they both succeed with the\nmount falling back to defaults (by the look of it).\n\nIn the past these failed even when the sloppy option was given, as\nI think they should. I believe the sloppy option is meant to allow\nthe mount command to still function for mount options (for example\nin shared autofs maps) that exist on other Unix implementations but\naren\u0027t present in the Linux mount.nfs(8). So, an invalid value\nspecified for a known mount option is different to an unknown mount\noption and should fail appropriately.\"\n\nSee RH bugzilla 486266.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "065015e5efff60884ad600a3e9a5127dbb684429"
}
