)]}'
{
  "log": [
    {
      "commit": "f551e44ff11d3e2ec8f37907bb88ec2433cc8b74",
      "tree": "f86527c24391f70d72a28111df5c541959e8f293",
      "parents": [
        "a53a3c58fd83e572a7c768d88b4c4e9840a57e82"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "chuck.lever@oracle.com",
        "time": "Wed Sep 20 14:33:04 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:05 2006 -0400"
      },
      "message": "NFS: add comments clarifying the use of nfs_post_op_update()\n\nComments-only change to clarify a detail of the NFS protocol and how it is\nimplemented in Linux.\n\nTest plan:\nNone.\n\nSigned-off-by: Chuck Lever \u003cchuck.lever@oracle.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "97db8f41792839a6912fd21be8b61dd6c50db58f",
      "tree": "b569931dd76809ef4bee9165da54d1c34310fbe4",
      "parents": [
        "5f004cf2aa8494708fd8d78e78142b7b2748e765"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Sep 14 14:03:14 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:25:03 2006 -0400"
      },
      "message": "NFS: Don\u0027t invalidate the symlink we just stuffed into the cache\n\nAnd slight optimisation of nfs_end_data_update(): directories never have\ndelegations anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6aaca566503296a73f956908ec98173946134fe2",
      "tree": "7625bbfa14cddd93ed3e2afa03caf4b553116f76",
      "parents": [
        "54ceac4515986030c2502960be620198dd8fe25b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:13 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Add server and volume lists to /proc\n\nMake two new proc files available:\n\n\t/proc/fs/nfsfs/servers\n\t/proc/fs/nfsfs/volumes\n\nThe first lists the servers with which we are currently dealing (struct\nnfs_client), and the second lists the volumes we have on those servers (struct\nnfs_server).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "54ceac4515986030c2502960be620198dd8fe25b",
      "tree": "b4ae4305c5652c0fe883ef5ea3243da91dbd2b34",
      "parents": [
        "cf6d7b5de8535a9f0088c5cc28ee2dae87371b4a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:13 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:37 2006 -0400"
      },
      "message": "NFS: Share NFS superblocks per-protocol per-server per-FSID\n\nThe attached patch makes NFS share superblocks between mounts from the same\nserver and FSID over the same protocol.\n\nIt does this by creating each superblock with a false root and returning the\nreal root dentry in the vfsmount presented by get_sb(). The root dentry set\nstarts off as an anonymous dentry if we don\u0027t already have the dentry for its\ninode, otherwise it simply returns the dentry we already have.\n\nWe may thus end up with several trees of dentries in the superblock, and if at\nsome later point one of anonymous tree roots is discovered by normal filesystem\nactivity to be located in another tree within the superblock, the anonymous\nroot is named and materialises attached to the second tree at the appropriate\npoint.\n\nWhy do it this way? Why not pass an extra argument to the mount() syscall to\nindicate the subpath and then pathwalk from the server root to the desired\ndirectory? You can\u0027t guarantee this will work for two reasons:\n\n (1) The root and intervening nodes may not be accessible to the client.\n\n     With NFS2 and NFS3, for instance, mountd is called on the server to get\n     the filehandle for the tip of a path. mountd won\u0027t give us handles for\n     anything we don\u0027t have permission to access, and so we can\u0027t set up NFS\n     inodes for such nodes, and so can\u0027t easily set up dentries (we\u0027d have to\n     have ghost inodes or something).\n\n     With this patch we don\u0027t actually create dentries until we get handles\n     from the server that we can use to set up their inodes, and we don\u0027t\n     actually bind them into the tree until we know for sure where they go.\n\n (2) Inaccessible symbolic links.\n\n     If we\u0027re asked to mount two exports from the server, eg:\n\n\tmount warthog:/warthog/aaa/xxx /mmm\n\tmount warthog:/warthog/bbb/yyy /nnn\n\n     We may not be able to access anything nearer the root than xxx and yyy,\n     but we may find out later that /mmm/www/yyy, say, is actually the same\n     directory as the one mounted on /nnn. What we might then find out, for\n     example, is that /warthog/bbb was actually a symbolic link to\n     /warthog/aaa/xxx/www, but we can\u0027t actually determine that by talking to\n     the server until /warthog is made available by NFS.\n\n     This would lead to having constructed an errneous dentry tree which we\n     can\u0027t easily fix. We can end up with a dentry marked as a directory when\n     it should actually be a symlink, or we could end up with an apparently\n     hardlinked directory.\n\n     With this patch we need not make assumptions about the type of a dentry\n     for which we can\u0027t retrieve information, nor need we assume we know its\n     place in the grand scheme of things until we actually see that place.\n\nThis patch reduces the possibility of aliasing in the inode and page caches for\ninodes that may be accessed by more than one NFS export. It also reduces the\nnumber of superblocks required for NFS where there are many NFS exports being\nused from a server (home directory server + autofs for example).\n\nThis in turn makes it simpler to do local caching of network filesystems, as it\ncan then be guaranteed that there won\u0027t be links from multiple inodes in\nseparate superblocks to the same cache file.\n\nObviously, cache aliasing between different levels of NFS protocol could still\nbe a problem, but at least that gives us another key to use when indexing the\ncache.\n\nThis patch makes the following changes:\n\n (1) The server record construction/destruction has been abstracted out into\n     its own set of functions to make things easier to get right.  These have\n     been moved into fs/nfs/client.c.\n\n     All the code in fs/nfs/client.c has to do with the management of\n     connections to servers, and doesn\u0027t touch superblocks in any way; the\n     remaining code in fs/nfs/super.c has to do with VFS superblock management.\n\n (2) The sequence of events undertaken by NFS mount is now reordered:\n\n     (a) A volume representation (struct nfs_server) is allocated.\n\n     (b) A server representation (struct nfs_client) is acquired.  This may be\n     \t allocated or shared, and is keyed on server address, port and NFS\n     \t version.\n\n     (c) If allocated, the client representation is initialised.  The state\n     \t member variable of nfs_client is used to prevent a race during\n     \t initialisation from two mounts.\n\n     (d) For NFS4 a simple pathwalk is performed, walking from FH to FH to find\n     \t the root filehandle for the mount (fs/nfs/getroot.c).  For NFS2/3 we\n     \t are given the root FH in advance.\n\n     (e) The volume FSID is probed for on the root FH.\n\n     (f) The volume representation is initialised from the FSINFO record\n     \t retrieved on the root FH.\n\n     (g) sget() is called to acquire a superblock.  This may be allocated or\n     \t shared, keyed on client pointer and FSID.\n\n     (h) If allocated, the superblock is initialised.\n\n     (i) If the superblock is shared, then the new nfs_server record is\n     \t discarded.\n\n     (j) The root dentry for this mount is looked up from the root FH.\n\n     (k) The root dentry for this mount is assigned to the vfsmount.\n\n (3) nfs_readdir_lookup() creates dentries for each of the entries readdir()\n     returns; this function now attaches disconnected trees from alternate\n     roots that happen to be discovered attached to a directory being read (in\n     the same way nfs_lookup() is made to do for lookup ops).\n\n     The new d_materialise_unique() function is now used to do this, thus\n     permitting the whole thing to be done under one set of locks, and thus\n     avoiding any race between mount and lookup operations on the same\n     directory.\n\n (4) The client management code uses a new debug facility: NFSDBG_CLIENT which\n     is set by echoing 1024 to /proc/net/sunrpc/nfs_debug.\n\n (5) Clone mounts are now called xdev mounts.\n\n (6) Use the dentry passed to the statfs() op as the handle for retrieving fs\n     statistics rather than the root dentry of the superblock (which is now a\n     dummy).\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8fa5c000d7f986ef9cdc6d95f9f7fcee20e0a7d6",
      "tree": "356b811803db9775fd9c870d189a9ff75885ae6c",
      "parents": [
        "1f163415dc05983830bcc47b33c155b2528b1574"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Aug 22 20:06:12 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:35 2006 -0400"
      },
      "message": "NFS: Move rpc_ops from nfs_server to nfs_client\n\nMove the rpc_ops from the nfs_server struct to the nfs_client struct as they\u0027re\ncommon to all server records of a particular NFS protocol version.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cfcea3e8c66c2dcde98d5c2693d4bff50b5cac97",
      "tree": "ee7b995a48c43de7355fa33079ee7aaad020d6f3",
      "parents": [
        "1c3c07e9f6cc50dab2aeb8051325e317d4f6c70e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 25 11:28:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:29 2006 -0400"
      },
      "message": "NFS: Add a global LRU list for the ACCESS cache\n\n...in order to allow the addition of a memory shrinker.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1c3c07e9f6cc50dab2aeb8051325e317d4f6c70e",
      "tree": "96bbc2a304e9a0e831daf589d1662c6129303796",
      "parents": [
        "3eeab61aa3ddd3c0bedb7449ada1599de22fdb5a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jul 25 11:28:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 22 23:24:28 2006 -0400"
      },
      "message": "NFS: Add a new ACCESS rpc call cache to the linux nfs client\n\nThe current access cache only allows one entry at a time to be cached for each\ninode. Add a per-inode red-black tree in order to allow more than one to\nbe cached at a time.\n\nShould significantly cut down the time spent in path traversal for shared\ndirectories such as ${PATH}, /usr/share, etc.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6ab3d5624e172c553004ecc862bfeac16d9d68b7",
      "tree": "6d98881fe91fd9583c109208d5c27131b93fa248",
      "parents": [
        "e02169b682bc448ccdc819dc8639ed34a23cedd8"
      ],
      "author": {
        "name": "Jörn Engel",
        "email": "joern@wohnheim.fh-wedel.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Jun 30 19:25:36 2006 +0200"
      },
      "message": "Remove obsolete #include \u003clinux/config.h\u003e\n\nSigned-off-by: Jörn Engel \u003cjoern@wohnheim.fh-wedel.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "266bee88699ddbde42ab303bbc426a105cc49809",
      "tree": "2d2b57f869321e177caf173af8d43b5d88c4a79d",
      "parents": [
        "e7374e48009a15a680d53bd1f9828b9b79a8aac9"
      ],
      "author": {
        "name": "David Brownell",
        "email": "david-b@pacbell.net",
        "time": "Tue Jun 27 12:59:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 14:07:19 2006 -0700"
      },
      "message": "[PATCH] fix static linking of NFS\n\nBuilds on ARM report link problems with common configurations like\nstatically linked NFS (for nfsroot).  The symptom is that __init\nsection code references __exit section code; that won\u0027t work since\nthe exit sections are discarded (since they can never be called).\n\nThe best fix for these particular cases would be an \"__init_or_exit\"\nsection annotation.\n\nSigned-off-by: David Brownell \u003cdbrownell@users.sourceforge.net\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d75d54147db9db5194040bd1c5022df6ba36ee48",
      "tree": "4bb7c7db88edd31b57958850aa16bc8ea297e017",
      "parents": [
        "ccf01ef7aa9c6c293a1c64c27331a2ce227916ec"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Jun 25 02:41:26 2006 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Jun 25 06:38:11 2006 -0400"
      },
      "message": "git-nfs-build-fixes\n\nFix various problems with nfs4 disabled.  And various other things.\n\nIn file included from fs/nfs/inode.c:50:\nfs/nfs/internal.h:24: error: static declaration of \u0027nfs_do_refmount\u0027 follows non-static declaration\ninclude/linux/nfs_fs.h:320: error: previous declaration of \u0027nfs_do_refmount\u0027 was here\nfs/nfs/internal.h:65: warning: \u0027struct nfs4_fs_locations\u0027 declared inside parameter list\nfs/nfs/internal.h:65: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/nfs/internal.h: In function \u0027nfs4_path\u0027:\nfs/nfs/internal.h:97: error: \u0027struct nfs_server\u0027 has no member named \u0027mnt_path\u0027\nfs/nfs/inode.c: In function \u0027init_once\u0027:\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027open_states\u0027\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027delegation\u0027\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027delegation_state\u0027\nfs/nfs/inode.c:1116: error: \u0027struct nfs_inode\u0027 has no member named \u0027rwsem\u0027\ndistcc[26452] ERROR: compile fs/nfs/inode.c on g5/64 failed\nmake[1]: *** [fs/nfs/inode.o] Error 1\nmake: *** [fs/nfs/inode.o] Error 2\nmake: *** Waiting for unfinished jobs....\nIn file included from fs/nfs/nfs3xdr.c:26:\nfs/nfs/internal.h:24: error: static declaration of \u0027nfs_do_refmount\u0027 follows non-static declaration\ninclude/linux/nfs_fs.h:320: error: previous declaration of \u0027nfs_do_refmount\u0027 was here\nfs/nfs/internal.h:65: warning: \u0027struct nfs4_fs_locations\u0027 declared inside parameter list\nfs/nfs/internal.h:65: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/nfs/internal.h: In function \u0027nfs4_path\u0027:\nfs/nfs/internal.h:97: error: \u0027struct nfs_server\u0027 has no member named \u0027mnt_path\u0027\ndistcc[26486] ERROR: compile fs/nfs/nfs3xdr.c on g5/64 failed\nmake[1]: *** [fs/nfs/nfs3xdr.o] Error 1\nmake: *** [fs/nfs/nfs3xdr.o] Error 2\nIn file included from fs/nfs/nfs3proc.c:24:\nfs/nfs/internal.h:24: error: static declaration of \u0027nfs_do_refmount\u0027 follows non-static declaration\ninclude/linux/nfs_fs.h:320: error: previous declaration of \u0027nfs_do_refmount\u0027 was here\nfs/nfs/internal.h:65: warning: \u0027struct nfs4_fs_locations\u0027 declared inside parameter list\nfs/nfs/internal.h:65: warning: its scope is only this definition or declaration, which is probably not what you want\nfs/nfs/internal.h: In function \u0027nfs4_path\u0027:\nfs/nfs/internal.h:97: error: \u0027struct nfs_server\u0027 has no member named \u0027mnt_path\u0027\ndistcc[26469] ERROR: compile fs/nfs/nfs3proc.c on bix/32 failed\nmake[1]: *** [fs/nfs/nfs3proc.o] Error 1\nmake: *** [fs/nfs/nfs3proc.o] Error 2\n**FAILED**\n\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Andreas Gruenbacher \u003cagruen@suse.de\u003e\nCc: Andy Adamson \u003candros@citi.umich.edu\u003e\nCc: Chuck Lever \u003ccel@netapp.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: J. Bruce Fields \u003cbfields@fieldses.org\u003e\nCc: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nCc: Marc Eshel \u003ceshel@almaden.ibm.com\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72",
      "tree": "4ae8372762efc092ceb4f884b57cad1efe6594de",
      "parents": [
        "4e5ccf60c5aa79d325c123f47d288a068166f389"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "message": "NFS: Split fs/nfs/inode.c\n\nAs fs/nfs/inode.c is rather large, heterogenous and unwieldy, the attached\npatch splits it up into a number of files:\n\n (*) fs/nfs/inode.c\n\n     Strictly inode specific functions.\n\n (*) fs/nfs/super.c\n\n     Superblock management functions for NFS and NFS4, normal access, clones\n     and referrals.  The NFS4 superblock functions _could_ move out into a\n     separate conditionally compiled file, but it\u0027s probably not worth it as\n     there\u0027re so many common bits.\n\n (*) fs/nfs/namespace.c\n\n     Some namespace-specific functions have been moved here.\n\n (*) fs/nfs/nfs4namespace.c\n\n     NFS4-specific namespace functions (this could be merged into the previous\n     file).  This file is conditionally compiled.\n\n (*) fs/nfs/internal.h\n\n     Inter-file declarations, plus a few simple utility functions moved from\n     fs/nfs/inode.c.\n\n     Additionally, all the in-.c-file externs have been moved here, and those\n     files they were moved from now includes this file.\n\nFor the most part, the functions have not been changed, only some multiplexor\nfunctions have changed significantly.\n\nI\u0027ve also:\n\n (*) Added some extra banner comments above some functions.\n\n (*) Rearranged the function order within the files to be more logical and\n     better grouped (IMO), though someone may prefer a different order.\n\n (*) Reduced the number of #ifdefs in .c files.\n\n (*) Added missing __init and __exit directives.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "4e5ccf60c5aa79d325c123f47d288a068166f389",
      "tree": "acc16e1c85eb4348f4faf5288463f236d61e0fcc",
      "parents": [
        "860de07139980afe9856cc31eb5efbf321bbcea4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:32 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:32 2006 -0400"
      },
      "message": "NFS: Fix typo in nfs_do_clone_mount()\n\nDoh!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "860de07139980afe9856cc31eb5efbf321bbcea4",
      "tree": "e32a6c758b299f62978426c7e263f6f554678731",
      "parents": [
        "87e4ba1a62af8e05ee3e8f8aaca622714386ffb0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:31 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:31 2006 -0400"
      },
      "message": "NFS: Fix compile errors introduced by referrals patches\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "87e4ba1a62af8e05ee3e8f8aaca622714386ffb0",
      "tree": "f37f00e2c5cc5904f57395f800e8e6544eb062d9",
      "parents": [
        "33a43f2802d8d7be3a9b541785c4ca9ad79e4310"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:30 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:30 2006 -0400"
      },
      "message": "NFSv4: Ensure that referral mounts bind to a reserved port\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b97fd3da1eab2cc490cfe884c7d4956522eaf8b",
      "tree": "055f5f603101a15f783ae52081e4714ddc3edc96",
      "parents": [
        "9cdb3883c38f883436a84c2353a4cf964ff890a2"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:29 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:29 2006 -0400"
      },
      "message": "NFSv4: Follow a referral\n\nRespond to a moved error on NFS lookup by setting up the referral.\nNote: We don\u0027t actually follow the referral during lookup/getattr, but\nlater when we detect fsid mismatch in inode revalidation (similar to the\nprocessing done for cloning submounts). Referrals will have fake attributes\nuntil they are actually followed or traversed.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9cdb3883c38f883436a84c2353a4cf964ff890a2",
      "tree": "7961aebf94c66d7d55bb6e7c715e99d28ad3ab9d",
      "parents": [
        "61f5164cab1f6fdf06871ea9d60fe2f912184078"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:28 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:28 2006 -0400"
      },
      "message": "NFSv4: Ensure client submounts when following a referral\n\nSet up mountpoint when hitting a referral on moved error by getting\nfs_locations.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "61f5164cab1f6fdf06871ea9d60fe2f912184078",
      "tree": "966e8279f9563ceda4b919f309832c3336642abb",
      "parents": [
        "c818ba43f9ca2e8214412ab5f126b1f436c35098"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:27 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:27 2006 -0400"
      },
      "message": "NFS: Expand clone mounts to include other servers\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c818ba43f9ca2e8214412ab5f126b1f436c35098",
      "tree": "02e3646c172000c8bc71d6de52d4991bbeb3db14",
      "parents": [
        "830b8e33fe1900b87c8eb7ec5c646117a9f298d6"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:26 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:26 2006 -0400"
      },
      "message": "NFSv4: Create NFSv4 transport and client\n\nMove existing code into a separate function so that it can be also used by\nreferral code.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "51d8fa6a109589d522c18a8e9bf3fb167a91b1bc",
      "tree": "a9ec5e642bfa64f7cf1fde01617b30bac385bac6",
      "parents": [
        "55a975937d40cac582e981ddc8ed783b3dcc043c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:20 2006 -0400"
      },
      "message": "NFS: Add timeout to submounts\n\nMake automounted partitions expire using the mark_mounts_for_expiry()\nfunction. The timeout is controlled via a sysctl.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55a975937d40cac582e981ddc8ed783b3dcc043c",
      "tree": "13507eaebdab5e9c9dd615fe373ec6c0ddcbade4",
      "parents": [
        "8b4bdcf8995dd92b23d2ec22b32aee8fbbb50e1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "message": "NFS: Ensure the client submounts, when it crosses a server mountpoint.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b4bdcf8995dd92b23d2ec22b32aee8fbbb50e1c",
      "tree": "8ebe9ec2ed5cb58592097123cf6b34af997316c7",
      "parents": [
        "8b512d9a88875affe584bb3d2a7a235f84343b9e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "message": "NFS: Store the file system \"fsid\" value in the NFS super block.\n\nThis should enable us to detect if we are crossing a mountpoint in the\ncase where the server is exporting \"nohide\" mounts.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8b512d9a88875affe584bb3d2a7a235f84343b9e",
      "tree": "80c46a675aeffaedd8d18e2bb6361768f4f4845a",
      "parents": [
        "5528f911b4c43a5de5da34bcbd7e3f2a62503617"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:18 2006 -0400"
      },
      "message": "VFS: Remove dependency of -\u003eumount_begin() call on MNT_FORCE\n\nAllow filesystems to decide to perform pre-umount processing whether or not\nMNT_FORCE is set.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "da6d503aa0a75ec44f17d985a2b500077e7f6a74",
      "tree": "863dbb7c8a2bdda8b2ef3e462722c867ce6e6c46",
      "parents": [
        "d2ccddf042c403b146159beea438c6bfc4a445e2"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Jun 01 17:26:35 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:14 2006 -0400"
      },
      "message": "NFS: Remove nfs_delete_inode()\n\nNow that we have a real nfs_invalidate_page() to ensure that\ntruncate_inode_pages() does the right thing when there are pending dirty\npages, we can get rid of nfs_delete_inode().\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1842bfb447cea8b344fd91af97fb6d604ecb11fa",
      "tree": "8f3fb5f9fac687ccee3b98e3f0a513816fe35b36",
      "parents": [
        "44b11874ff583b6e766a05856b04f3c492c32b84"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:41:01 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:10 2006 -0400"
      },
      "message": "NFS: Fix up inode revalidation accounting\n\nCurrently, we are accounting for all calls to nfs_revalidate_inode(), but not\nto nfs_revalidate_mapping(), or nfs_lookup_verify_inode(), etc...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "44b11874ff583b6e766a05856b04f3c492c32b84",
      "tree": "b17effcaf70ed67f61b1ec2ed2dea1ea2f884d60",
      "parents": [
        "38478b24e37587f1c4fedf8ac070ca54f052ed28"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:59 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:09 2006 -0400"
      },
      "message": "NFS: Separate metadata and page cache revalidation mechanisms\n\nSeparate out the function of revalidating the inode metadata, and\nrevalidating the mapping. The former may be called by lookup(),\nand only really needs to check that permissions, ctime, etc haven\u0027t changed\nwhereas the latter needs only done when we want to read data from the page\ncache, and may need to sync and then invalidate the mapping.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f1bb0b92ba2cdfffe6e437f7a7da53138cf08d52",
      "tree": "2870bd8f3e08b3b1b387f31713d965c3fcb7863f",
      "parents": [
        "0d0b5cb36faf7002a11736032313f06d6f3d881c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:55 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:08 2006 -0400"
      },
      "message": "NFS: Fix page cache revalidation\n\nFix up a bug in the handling of NFS_INO_REVAL_PAGECACHE: make sure that\nnfs_update_inode() clears it when we\u0027re sure we\u0027re not racing with other\nupdates.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "73a3d07c1082145a3b78407bb5252df290470c4c",
      "tree": "58ae6256401e19750f2d5f916c1ca5636a14905b",
      "parents": [
        "9d1e9232223a7f065be7f956a7b749a4cbbbe16d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:47 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:04 2006 -0400"
      },
      "message": "NFS: Clean up inode metadata updates\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9d1e9232223a7f065be7f956a7b749a4cbbbe16d",
      "tree": "cf535655bda226c5d306fffdb40bc22fbeb5aedb",
      "parents": [
        "1de3fc12ea085690547a54b6efa01c7348f1cebd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:46 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:04 2006 -0400"
      },
      "message": "NFSv4: Some NFSv4 servers have broken behaviour for the change attribute\n\nThe Linux NFSv4 server violates RFC3530 in that the change attribute is not\nguaranteed to be updated for every change to the inode. Our optimisation\nfor checking whether or not the inode metadata has changed or not is broken\ntoo. Grr....\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b9d9506d944865876e67281a4e4269d823ce5381",
      "tree": "344e12dab9854855fad1388e2aaecbf33eb566c1",
      "parents": [
        "ec535ce154f2eaad3d97f2f20a76a6d8bdac33e5"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Wed Apr 19 13:06:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 13:06:20 2006 -0400"
      },
      "message": "NFS: nfs_show_stats; for_each_possible_cpu(), not NR_CPUS\n\nConvert a for-loop that explicitly references \"NR_CPUS\" into the\npotentially more efficient for_each_possible_cpu() construct.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "53846a21c1766326bb14ce8ab6e997a0c120675d",
      "tree": "37b04485e29844b4e734479181276a2f4d2447e4",
      "parents": [
        "2e9abdd9bad485970b37cd53a82f92702054984c",
        "1ebbe2b20091d306453a5cf480a87e6cd28ae76f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (103 commits)\n  SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies\n  SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc\n  LOCKD: Make nlmsvc_traverse_shares return void\n  LOCKD: nlmsvc_traverse_blocks return is unused\n  SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers.\n  NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n  SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum\n  SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n  SUNRPC: Fix memory barriers for req-\u003erq_received\n  NFS: Fix a race in nfs_sync_inode()\n  NFS: Clean up nfs_flush_list()\n  NFS: Fix a race with PG_private and nfs_release_page()\n  NFSv4: Ensure the callback daemon flushes signals\n  SUNRPC: Fix a \u0027Busy inodes\u0027 error in rpc_pipefs\n  NFS, NLM: Allow blocking locks to respect signals\n  NFS: Make nfs_fhget() return appropriate error values\n  NFSv4: Fix an oops in nfs4_fill_super\n  lockd: blocks should hold a reference to the nlm_file\n  NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n  NFSv4: Send the delegation stateid for SETATTR calls\n  ...\n"
    },
    {
      "commit": "fffb60f93ce5880aade88e01d7133b52a4879710",
      "tree": "7882f0550af8580c0646306f6d391fe610f7ef8c",
      "parents": [
        "4b6a9316fab51af611dc8671f296734089f6a22a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache format\n\nRewrap the overly long source code lines resulting from the previous\npatch\u0027s addition of the slab cache flag SLAB_MEM_SPREAD.  This patch\ncontains only formatting changes, and no function change.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6a9316fab51af611dc8671f296734089f6a22a",
      "tree": "078f8f0f01a206af529bef137d5b71515c39053d",
      "parents": [
        "44110fe385af23ca5eee8a6ad4ff55d50339097a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache filesystems\n\nMark file system inode and similar slab caches subject to SLAB_MEM_SPREAD\nmemory spreading.\n\nIf a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that\u0027s\nin a cpuset with the \u0027memory_spread_slab\u0027 option enabled goes to allocate\nfrom such a slab cache, the allocations are spread evenly over all the\nmemory nodes (task-\u003emems_allowed) allowed to that task, instead of favoring\nallocation on the node local to the current cpu.\n\nThe following inode and similar caches are marked SLAB_MEM_SPREAD:\n\n    file                               cache\n    \u003d\u003d\u003d\u003d                               \u003d\u003d\u003d\u003d\u003d\n    fs/adfs/super.c                    adfs_inode_cache\n    fs/affs/super.c                    affs_inode_cache\n    fs/befs/linuxvfs.c                 befs_inode_cache\n    fs/bfs/inode.c                     bfs_inode_cache\n    fs/block_dev.c                     bdev_cache\n    fs/cifs/cifsfs.c                   cifs_inode_cache\n    fs/coda/inode.c                    coda_inode_cache\n    fs/dquot.c                         dquot\n    fs/efs/super.c                     efs_inode_cache\n    fs/ext2/super.c                    ext2_inode_cache\n    fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr\n    fs/ext3/super.c                    ext3_inode_cache\n    fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr\n    fs/fat/cache.c                     fat_cache\n    fs/fat/inode.c                     fat_inode_cache\n    fs/freevxfs/vxfs_super.c           vxfs_inode\n    fs/hpfs/super.c                    hpfs_inode_cache\n    fs/isofs/inode.c                   isofs_inode_cache\n    fs/jffs/inode-v23.c                jffs_fm\n    fs/jffs2/super.c                   jffs2_i\n    fs/jfs/super.c                     jfs_ip\n    fs/minix/inode.c                   minix_inode_cache\n    fs/ncpfs/inode.c                   ncp_inode_cache\n    fs/nfs/direct.c                    nfs_direct_cache\n    fs/nfs/inode.c                     nfs_inode_cache\n    fs/ntfs/super.c                    ntfs_big_inode_cache_name\n    fs/ntfs/super.c                    ntfs_inode_cache\n    fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache\n    fs/ocfs2/super.c                   ocfs2_inode_cache\n    fs/proc/inode.c                    proc_inode_cache\n    fs/qnx4/inode.c                    qnx4_inode_cache\n    fs/reiserfs/super.c                reiser_inode_cache\n    fs/romfs/inode.c                   romfs_inode_cache\n    fs/smbfs/inode.c                   smb_inode_cache\n    fs/sysv/inode.c                    sysv_inode_cache\n    fs/udf/super.c                     udf_inode_cache\n    fs/ufs/super.c                     ufs_inode_cache\n    net/socket.c                       sock_inode_cache\n    net/sunrpc/rpc_pipe.c              rpc_inode_cache\n\nThe choice of which slab caches to so mark was quite simple.  I marked\nthose already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,\ninode_cache, and buffer_head, which were marked in a previous patch.  Even\nthough SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same\npotentially large file system i/o related slab caches as we need for memory\nspreading.\n\nGiven that the rule now becomes \"wherever you would have used a\nSLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use\nthe SLAB_MEM_SPREAD flag too\", this should be easy enough to maintain.\nFuture file system writers will just copy one of the existing file system\nslab cache setups and tend to get it right without thinking.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e8c96f8c29d89af0c13dc2819a9a00575846ca18",
      "tree": "b90ed0da4803df56a91be5979580e335af2d697c",
      "parents": [
        "b5029622ac86bb441dc5e641226fb1152fca02d7"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Fri Mar 24 03:15:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:19 2006 -0800"
      },
      "message": "[PATCH] fs: Use ARRAY_SIZE macro\n\nUse ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove a\nduplicate of ARRAY_SIZE.  Some trailing whitespaces are also deleted.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b04c997b1120feefa1e6ee8e2902270bc055cd2",
      "tree": "09376b68d11ccce2a1ef53bac25a41a763ad36d0",
      "parents": [
        "6961ec8267d08e21011457b05d2263ec06bdcfe1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 24 03:15:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:15 2006 -0800"
      },
      "message": "[PATCH] vfs: MS_VERBOSE should be MS_SILENT\n\nThe meaning of MS_VERBOSE is backwards; if the bit is set, it really means,\n\"don\u0027t be verbose\".  This is confusing and counter-intuitive.\n\nIn addition, there is also no way to set the MS_VERBOSE flag in the\nmount(8) program in util-linux, but interesting, it does define options\nwhich would do the right thing if MS_SILENT were defined, which\nunfortunately we do not:\n\n#ifdef MS_SILENT\n  { \"quiet\",    0, 0, MS_SILENT    },   /* be quiet  */\n  { \"loud\",     0, 1, MS_SILENT    },   /* print out messages. */\n#endif\n\nSo the obvious fix is to deprecate the use of MS_VERBOSE and replace it\nwith MS_SILENT.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c42de9dd67250fe984e0e31c9b542d721af6454b",
      "tree": "a4079b25a044f7124837f572e5342dc7614ca75d",
      "parents": [
        "7d46a49f512e8d10b23353781a8ba85edd4fa640"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "message": "NFS: Fix a race in nfs_sync_inode()\n\nKudos to Neil Brown for spotting the problem:\n\n\"in nfs_sync_inode, there is effectively the sequence:\n\n   nfs_wait_on_requests\n   nfs_flush_inode\n   nfs_commit_inode\n\n This seems a bit racy to me as if the only requests are on the\n -\u003ecommit list, and nfs_commit_inode is called separately after\n nfs_wait_on_requests completes, and before nfs_commit_inode start\n (say: by nfs_write_inode) then none of these function will return\n \u003e0, yet there will be some pending request that aren\u0027t waited for.\"\n\nThe solution is to search for requests to wait upon, search for dirty\nrequests, and search for uncommitted requests while holding the\nnfsi-\u003ereq_lock\n\nThe patch also cleans up nfs_sync_inode(), getting rid of the redundant\nFLUSH_WAIT flag. It turns out that we were always setting it.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03f28e3a2059fc466761d872122f30acb7be61ae",
      "tree": "d478e553b79520c34bb3d06e75b59609de2993f4",
      "parents": [
        "01d0ae8beaee75d954900109619b700fe68707d9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFS: Make nfs_fhget() return appropriate error values\n\nCurrently it returns NULL, which usually gets interpreted as ENOMEM. In\nfact it can mean a host of issues.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01d0ae8beaee75d954900109619b700fe68707d9",
      "tree": "06180b83f10e0008db9f6bfa6a5fa420bf568ebe",
      "parents": [
        "d9f6eb75d4900782a095b98470decfe98971f920"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFSv4: Fix an oops in nfs4_fill_super\n\nThe mount statistics patches introduced a call to nfs_free_iostats that is\nnot only redundant, but actually causes an oops.\n\nAlso fix a memory leak due to the lack of a call to nfs_free_iostats on\nunmount.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ece3a2d18fd7fe1d4972284a8c98c569020093f",
      "tree": "bc71e99d3e4fcc7fc34fea911981f2692377f5b5",
      "parents": [
        "11c556b3d8d481829ab5f9933a25d29b00913b5a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:22 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:22 2006 -0500"
      },
      "message": "NFS: add RPC I/O statistics to /proc/self/mountstats\n\nNFS client now shows various RPC I/O metrics in /proc/self/mountstats.\n\nTest plan:\nMount/umount while doing \"cat /proc/self/mountstats\", multiple iterations\nof connectathon locking suite.  Test with NFS version 2, 3, and 4.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "67ec9f46b889bfb1ab0a4e307d53929d5f0692bf",
      "tree": "fe9cb38a7ead5bf4894b22bdc10af5d513695781",
      "parents": [
        "006ea73e5fa82915d0ac7a3f15ee7c688433236d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:15 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:15 2006 -0500"
      },
      "message": "NFS: report how long an NFS file system has been mounted\n\nAdd a field in nfs_server to record a timestamp when a mount succeeds.\nReport the number of seconds the file system has been mounted via\nnfs_show_stats().\n\nTest plan:\nMount an NFS file system, watch the mountstats reports and compare with\nclock time.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "91d5b47023b608227d605d1e916b29dd0215bff7",
      "tree": "31dbb285639ea68db3abc0c4129988f02d50f11a",
      "parents": [
        "d9ef5a8c26aab09762afce43df64736720b4860e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:14 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:14 2006 -0500"
      },
      "message": "NFS: add I/O performance counters\n\nInvoke the byte and event counter macros where we want to count bytes and\nevents.\n\nClean-up: fix a possible NULL dereference in nfs_lock, and simplify\nnfs_file_open.\n\nTest-plan:\nfsx and iozone on UP and SMP systems, with and without pre-emption.  Watch\nfor memory overwrite bugs, and performance loss (significantly more CPU\nrequired per op).\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d9ef5a8c26aab09762afce43df64736720b4860e",
      "tree": "01ec0e16b19d7e418f26f1218113bb0f90b1a2e1",
      "parents": [
        "c8bded96aa8735823e53c95a26177987ebb19a90"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "message": "NFS: introduce mechanism for tracking NFS client metrics\n\nAdd a per-superblock performance counter facility to the NFS client.  This\nfacility mimics the counters available for block devices and for\nnetworking.  Expose these new counters via the new /proc/self/mountstats\ninterface.\n\nThanks to Andrew Morton and Trond Myklebust for their review and comments.\n\nTest plan:\nfsx and iozone on UP and SMP systems, with and without pre-emption.  Watch\nfor memory overwrite bugs, and performance loss (significantly more CPU\nrequired per op).\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c8bded96aa8735823e53c95a26177987ebb19a90",
      "tree": "95c6c3f5ab5c331d12f986323175615862aff8cb",
      "parents": [
        "7a480e250c7ca9187275d8574ae9e48a6b602cb9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "message": "NFS: clean up some mount options\n\nGet rid of \"lock\" and \"posix\", and spell out \"vers\u003d\".\n\nTest plan:\nNone.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a480e250c7ca9187275d8574ae9e48a6b602cb9",
      "tree": "0c3744235b3469c10b791fc5cd80b82f9734d37b",
      "parents": [
        "b4629fe2f094b719847f31be1ee5ab38300038b2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "message": "NFS: show retransmit settings when displaying mount options\n\nSometimes it\u0027s important to know the exact RPC retransmit settings the\nkernel is using for an NFS mount point.  Add this facility to the NFS\nclient\u0027s show_options method.\n\nTest plan:\nSet various retransmit settings via the mount command, and check that the\nsettings are reflected in /proc/mounts.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd6475454c774bd9dbe6078d94bbf72b1d3b65f4",
      "tree": "641c38589e2aa02a22db229be7d77c9c342a81cb",
      "parents": [
        "a162a6b804b48c605d1fd35e1861a5d32d00ad3f"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Mon Mar 20 13:44:10 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:10 2006 -0500"
      },
      "message": "NFS: kzalloc conversion in fs/nfs\n\nthis converts fs/nfs to kzalloc() usage.\ncompile tested with make allyesconfig\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "967b9281361481aecf323563886ef972ee88c681",
      "tree": "de7ced8972fdff5011d43a6fe24c2c7ac7cc0cb6",
      "parents": [
        "12de3b35ea549c5819f287508d7afab0bf3ac44d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:09 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:09 2006 -0500"
      },
      "message": "NFSv4: Do not call rpciod_down() before call to destroy_nfsv4_state()\n\nThe reason is that the idmapper cleanup may call flush_workqueue() on\nrpciod_workqueue.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fb374d24f225f38f13dbffb65dd7ec72daf08dba",
      "tree": "bc87f6acbcb7a36ccb69930a6d10deed4fd1514a",
      "parents": [
        "c8d149f3dbd582a101aa7da7bdd6c3316efd11b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:08 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:08 2006 -0500"
      },
      "message": "NFS: reduce the number of false cache invalidations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ca62b9c3f7b8679ada4de94d2ab7098c6860c3d7",
      "tree": "c4eb7adef74b2ccdf5b928f698d80f6cdcb6f708",
      "parents": [
        "755c1e20cd2ad56e5c567fa05769eb98a3eef72b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:07 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:07 2006 -0500"
      },
      "message": "NFSv4: Don\u0027t invalidate cached attributes if change attribute is unchanged\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "755c1e20cd2ad56e5c567fa05769eb98a3eef72b",
      "tree": "afc643f89b342011af6a14ee24b999f9106f6c2b",
      "parents": [
        "7bab377fcb495ee2e5a1cd69d235f8d84c76e3af"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "message": "NFS: writes should not clobber utimes() calls\n\nEnsure that we flush out writes in the case when someone calls utimes() in\norder to set the file times.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b92dccf65bab3b6b7deb79ff3321dc256eb0f53b",
      "tree": "78a1436441bdfc1c2cc7928d9fdff50c0579013f",
      "parents": [
        "7705a8792b0fc82fd7d4dd923724606bbfd9fb20"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:03 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:03 2006 -0500"
      },
      "message": "NFS: Fix a busy inodes issue...\n\nThe nfs_open_context may live longer than the file descriptor that spawned\nit, so it needs to carry a reference to the vfsmount. If not, then\ngeneric_shutdown_super() may end up being called before reads and writes\nhave been flushed out.\n\nMake a couple of functions static while we\u0027re at it...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc33a7bb9c6dd8f6e4a014976200f8fdabb3a45c",
      "tree": "26f4d676de476075545e58057aa5d8c57618741d",
      "parents": [
        "0d456fa4261f43433287a10fe3ec04a9818fac64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:34 2006 -0800"
      },
      "message": "[PATCH] per-mountpoint noatime/nodiratime\n\nTurn noatime and nodiratime into per-mount instead of per-sb flags.\n\nAfter all the preparations this is a rather trivial patch.  The mount code\nneeds to treat the two options as per-mount instead of per-superblock, and\ntouch_atime needs to be changed to check the new MNT_ flags in addition to\nthe MS_ flags that are kept for filesystems that are always\nnoatime/nodiratime but not user settable anymore.  Besides that core code\nonly nfs needed an update because it\u0027s leaving atime updates to the server\nand thus sets the S_NOATIME flag on every inode, but needs to know whether\nit\u0027s a real noatime mount for an getattr optimization.\n\nWhile we\u0027re at it I\u0027ve killed the IS_NOATIME/IS_NODIRATIME macros that were\nonly used by touch_atime.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28fd129827b00e12829d48a5290f46277600619b",
      "tree": "38e50e1b88965fec41ea5b36aa557fb5c2b1ca73",
      "parents": [
        "05eb0b51fb46430050d5873458612f53e0234f2e"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jan 08 01:02:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:47 2006 -0800"
      },
      "message": "[PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait)\n\nThis patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.\n\nSee mm/filemap.c:\n\nAnd changes the filemap_write_and_wait() and filemap_write_and_wait_range().\n\nCurrent filemap_write_and_wait() doesn\u0027t wait if filemap_fdatawrite()\nreturns error.  However, even if filemap_fdatawrite() returned an\nerror, it may have submitted the partially data pages to the device.\n(e.g. in the case of -ENOSPC)\n\n\u003cquotation\u003e\nAndrew Morton writes,\n\nIf filemap_fdatawrite() returns an error, this might be due to some\nI/O problem: dead disk, unplugged cable, etc.  Given the generally\ncrappy quality of the kernel\u0027s handling of such exceptions, there\u0027s a\ngood chance that the filemap_fdatawait() will get stuck in D state\nforever.\n\u003c/quotation\u003e\n\nSo, this patch doesn\u0027t wait if filemap_fdatawrite() returns the -EIO.\n\nTrond, could you please review the nfs part?  Especially I\u0027m not sure,\nnfs must use the \"filemap_fdatawrite(inode-\u003ei_mapping) \u003d\u003d 0\", or not.\n\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58df095b732529ade8f4051b41d7c29731afecd6",
      "tree": "917819b96bac91e5daea7a31eb6eba66268952d9",
      "parents": [
        "0065db328533c390fbfb0fe0c46bcf9a278fb99e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:57 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:58 2006 -0500"
      },
      "message": "NFSv4: Allow entries in the idmap cache to expire\n\n If someone changes the uid/gid mapping in userland, then we do eventually\n want those changes to be propagated to the kernel. Currently the kernel\n assumes that it may cache entries forever.\n\n Add an expiration time + garbage collector for idmap entries.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f518e35aec984036903c1003e867f833747a9d79",
      "tree": "2697838e0b1e6cc80565204de8b46430ded1246a",
      "parents": [
        "922004120b10dcb0ce04b55014168e8a7a8c1a0e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jan 03 09:55:52 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:56 2006 -0500"
      },
      "message": "SUNRPC: get rid of cl_chatty\n\n Clean up: Every ULP that uses the in-kernel RPC client, except the NLM\n client, sets cl_chatty.  There\u0027s no reason why NLM shouldn\u0027t set it, so\n just get rid of cl_chatty and always be verbose.\n\n Test-plan:\n Compile with CONFIG_NFS enabled.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a72b44222d222749d54b3e370d825094352e389f",
      "tree": "d64815b696d207927a4154a2cbc649552708c6f2",
      "parents": [
        "a895b4a198dd06f8353328867e4f6cfd28b63081"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:41 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:52 2006 -0500"
      },
      "message": "NFSv4: Allow user to set the port used by the NFSv4 callback channel\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a895b4a198dd06f8353328867e4f6cfd28b63081",
      "tree": "88a20d173f39170f40e03eede9103f3b0e10b980",
      "parents": [
        "fa178f29c0f8a0dce748181a5351f4a92fd4f455"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:40 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:52 2006 -0500"
      },
      "message": "NFS: Clean up weak cache consistency code\n\n ...and ensure that nfs_update_inode() respects wcc\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "70b9ecbdb9c5fdc731f8780bffd45d9519020c4a",
      "tree": "4678182bd417945cd424a652396510bc53eff8b7",
      "parents": [
        "24174119c73983d5217da8f56a12c79a9b57e056"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:34 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:50 2006 -0500"
      },
      "message": "NFS: Make stat() return updated mtimes after a write()\n\n The SuS states that a call to write() will cause mtime to be updated on\n the file. In order to satisfy that requirement, we need to flush out\n any cached writes in nfs_getattr().\n Speed things up slightly by not committing the writes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40859d7ee64ed6bfad8a4e93f9bb5c1074afadff",
      "tree": "ed4069423c3d6551035d5b6116f50452cdac4103",
      "parents": [
        "325cfed9ae901320e9234b18c21434b783dbe342"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:09:02 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:49 2006 -0500"
      },
      "message": "NFS: support large reads and writes on the wire\n\n Most NFS server implementations allow up to 64KB reads and writes on the\n wire.  The Solaris NFS server allows up to a megabyte, for instance.\n\n Now the Linux NFS client supports transfer sizes up to 1MB, too.  This will\n help reduce protocol and context switch overhead on read/write intensive NFS\n workloads, and support larger atomic read and write operations on servers\n that support them.\n\n Test-plan:\n Connectathon and iozone on mount point with wsize\u003drsize\u003e32768 over TCP.\n Tests with NFS over UDP to verify the maximum RPC payload size cap.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "325cfed9ae901320e9234b18c21434b783dbe342",
      "tree": "4c842a04bbb20427b2cf6a40a28fdbddf96bbae3",
      "parents": [
        "dc20f803904dbf30f834dcc43c14701dfce32491"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:08:55 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:49 2006 -0500"
      },
      "message": "NFS: make \"inode number mismatch\" message more useful\n\n To help NFS users and server developers, make the \"inode number mismatch\"\n message display more useful information.\n\n Test-plan:\n None.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc20f803904dbf30f834dcc43c14701dfce32491",
      "tree": "27d12ce7f8c7455501c93198d194824a346ce2ad",
      "parents": [
        "a911fd9a6046200e439b4af172e8379c0942eec3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:08:57 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:48 2006 -0500"
      },
      "message": "NFS: get rid of useless kernel log message\n\n nfs_statfs() generates a log message when GETATTR returns an error.  This\n is usually a useless message.  Make it a dprintk.\n\n Test plan:\n None\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b59a75460eb9527145d7bd55068e5d32bee8a44",
      "tree": "e813365a2bdc3605fbc6580d05189b8878185ef6",
      "parents": [
        "ce1a8e6796150233f5098100f70217521dc7c08f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:08:19 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:48 2006 -0500"
      },
      "message": "NFS: Fix error recovery code in fs/nfs/inode.c:__init_nfs()\n\n Red Hat found a problem in the error recovery logic in __init_nfs.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "286d7d6a0cb38d3d4316a1dfea9b0c0fc5a6455b",
      "tree": "844ea8a14db8261a3977ae4d460e227402a4a426",
      "parents": [
        "b4454fe1a7cb76a248d0641c9d68a44a1b8d9a1f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:26 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:47 2006 -0500"
      },
      "message": "NFSv4: Remove requirement for machine creds for the \"setclientid\" operation\n\n Use a cred from the nfs4_client-\u003ecl_state_owners list.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "29884df0d89c1df0dec3449405bc41569bb44800",
      "tree": "b836dc3ece80a901d1b7a9e946bf0d51ec0c8c4f",
      "parents": [
        "b079fa7baa86b47579f3f60f86d03d21c76159b8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 13 16:13:54 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 19 23:12:09 2005 -0500"
      },
      "message": "NFS: Fix another O_DIRECT race\n\n Ensure we call unmap_mapping_range() and sync dirty pages to disk before\n doing an NFS direct write.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24aa1fe6779eaddb3e0b1b802585dcf6faf9cc44",
      "tree": "dc851edc67202f459262985db0cd451b1d523462",
      "parents": [
        "223db122bfccd463751d8b0c09a638abee03681d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:07 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:07 2005 -0500"
      },
      "message": "NFS: Fix a few further cache consistency regressions\n\n Steve Dickson writes:\n Doing the following:\n 1. On server:\n $ mkdir ~/t\n $ echo Hello \u003e ~/t/tmp\n\n 2. On client, wait for a string to appear in this file:\n $ until grep -q foo t/tmp ; do echo -n . ; sleep 1 ; done\n\n 3. On server, create a *new* file with the same name containing that\n string:\n $ mv ~/t/tmp ~/t/tmp.old; echo foo \u003e ~/t/tmp\n\n will show how the client will never (and I mean never ;-) ) see\n the updated file.\n\n The problem is that we do not update nfsi-\u003ecache_change_attribute when the\n file changes on the server (we only update it when our client makes the\n changes). This again means that functions like nfs_check_verifier() will\n fail to register when the parent directory has changed and should trigger\n a dentry lookup revalidation.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "223db122bfccd463751d8b0c09a638abee03681d",
      "tree": "3fc2e3112f80d94abf0c36586392c7ce43d5a4e8",
      "parents": [
        "b3c6aeb3ce26b286769d2deafec47d218c83dd09"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Wed Nov 30 09:25:33 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:03 2005 -0500"
      },
      "message": "NFS: Fix cache consistency regression\n\n Make sure cache_change_attribute is initialized to jiffies\n so when the mtime changes on directory, the directory\n will be refreshed.\n\n Signed-off by: Steve Dickson \u003csteved@redhat.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b37b03b7051493c9f9a6b336c9c0f81334885b7d",
      "tree": "8bb06ddeb952e4399b94bb556f715edb2dbffd34",
      "parents": [
        "ff6040667ad5a21fa1090e02941ecefb94ebe32c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:10:06 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:11:29 2005 -0500"
      },
      "message": "NFS: Fix a spinlock recursion inside nfs_update_inode()\n\n In cases where the server has gone insane, nfs_update_inode() may end\n up calling nfs_invalidate_inode(), which again calls stuff that takes\n the inode-\u003ei_lock that we\u0027re already holding.\n\n In addition, given the sort of things we have in NFS these days that\n need to be cleaned up on inode release, I\u0027m not sure we should ever\n be calling make_bad_inode().\n\n Fix up spinlock recursion, and limit nfs_invalidate_inode() to clearing\n the caches, and marking the inode as being stale.\n\n Thanks to Steve Dickson \u003cSteveD@redhat.com\u003e for spotting this.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f99d49adf527fa6f7a9c42257fa76bca6b8df1e3",
      "tree": "41dddbc336016f9dc9557cdb15300de5e599dac1",
      "parents": [
        "6044ec8882c726e325017bd948aa0cd94ad33abc"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Mon Nov 07 01:01:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] kfree cleanup: fs\n\nThis is the fs/ part of the big kfree cleanup patch.\n\nRemove pointless checks for NULL prior to calling kfree() in fs/.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d530838bfa507d67b40d13b00d9cbd7a46a47e78",
      "tree": "f4b2be26c0a7b9ed3233a2be016b7e97427f8705",
      "parents": [
        "4cecb76ff86db46d2823550256c828b6597f418e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:38 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:38 2005 -0500"
      },
      "message": "NFSv4: Fix problem with OPEN_DOWNGRADE\n\n RFC 3530 states that for OPEN_DOWNGRADE \"The share_access and share_deny\n bits specified must be exactly equal to the union of the share_access and\n share_deny bits specified for some subset of the OPENs in effect for\n current openowner on the current file.\n\n Setattr is currently violating the NFSv4 rules for OPEN_DOWNGRADE in that\n it may cause a downgrade from OPEN4_SHARE_ACCESS_BOTH to\n OPEN4_SHARE_ACCESS_WRITE despite the fact that there exists no open file\n with O_WRONLY access mode.\n\n Fix the problem by replacing nfs4_find_state() with a modified version of\n nfs_find_open_context().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d3f8cf489993658702b7e58ff37162246263de53",
      "tree": "268db74a65b90335fb3457357e46e732696cfbb0",
      "parents": [
        "08db2a701bd63d0e36f06a29137bf016a907cf71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 30 17:38:25 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 14:46:47 2005 -0800"
      },
      "message": "[PATCH] NFS: Remove unbalanced spin_unlock() calls from nfs_refresh_inode()\n\nDoh!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bec273b491bd16351a9cdb8e9a51d30afa7fe9f4",
      "tree": "76013e5926f02d476b47812eb4c49b5dff8264a3",
      "parents": [
        "16c32b71bc53d6f7143702ebb264b4ef20d8f1e5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:45 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:45 2005 -0400"
      },
      "message": "NFS: Allow files that are open for write to invalidate caches\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "decf491f3076190262d4c649bed877650623903a",
      "tree": "8f67577349fe451b0267b68435db1578ec1273a4",
      "parents": [
        "33801147a8fda6b04d7e9afe1d42f1c01d3d6837"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "message": "NFS: Don\u0027t let nfs_end_data_update() clobber attribute update information\n\n Since we almost always call nfs_end_data_update() after we called\n nfs_refresh_inode(), we now end up marking the inode metadata\n as needing revalidation immediately after having updated it.\n\n This patch rearranges things so that we mark the inode as needing\n revalidation _before_ we call nfs_refresh_inode() on those operations\n that need it.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33801147a8fda6b04d7e9afe1d42f1c01d3d6837",
      "tree": "5311fb4714f0a24b7d7666b04250205025e18d15",
      "parents": [
        "913a70fc170530f7e1ff0693595155457cc6d0ca"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "message": "NFS: Optimise inode attribute cache updates\n\n Allow nfs_refresh_inode() also to update attributes on the inode if the\n RPC call was sent after the last call to nfs_update_inode().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "913a70fc170530f7e1ff0693595155457cc6d0ca",
      "tree": "1f3d5db26462d02ecca383794b3061a5eae8d9cc",
      "parents": [
        "0e574af1be5f569a5d7f2800333b0bfb358a5e34"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:38 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:38 2005 -0400"
      },
      "message": "NFS: Convert cache_change_attribute into a jiffy-based value\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "642ac54923e0291ae2c8e42edde18d8c9c0a3c84",
      "tree": "3dbcbbff050551854b29e020f8453306053ae9bb",
      "parents": [
        "cae7a073a4c5484cc5713eab606bf54b46724ab3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "message": "NFSv4: Return delegations in case we\u0027re changing ACLs\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cae7a073a4c5484cc5713eab606bf54b46724ab3",
      "tree": "e5cdcf0376da5b04bca9bbbf8f226abe13f33275",
      "parents": [
        "cdce5d6b94b6182f6d8a5b7b52923933e98cbc92"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "message": "NFSv4: Return delegation upon rename or removal of file.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cff6bf970965c98c62007fc8a36527fd147fe233",
      "tree": "2791f2208b54ade86625af416ff5342f11282f0c",
      "parents": [
        "6cd7525a00f3b926e8bd2e402954ed3e09a8e924",
        "39ca371c45b04cd50d0974030ae051906fc516b6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 13:50:52 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 13:50:52 2005 -0700"
      },
      "message": "Merge /home/trondmy/scm/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "6ce969171d5187f7621be68c0ebbc7fb02ec53f1",
      "tree": "9784933075d154085fec4fe96be7dc8006202fbb",
      "parents": [
        "b3c52da33ce95747b1bff86cce716d4f1397f14a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Mon Oct 17 06:03:23 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 14:47:16 2005 -0700"
      },
      "message": "[PATCH] NFS: Fix Oopsable/unnecessary i_count manipulations in nfs_wait_on_inode()\n\nOopsable since nfs_wait_on_inode() can get called as part of iput_final().\n\nUnnecessary since the caller had better be damned sure that the inode won\u0027t\ndisappear from underneath it anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3c52da33ce95747b1bff86cce716d4f1397f14a",
      "tree": "7958a929e5b9486bf0b5358776078c1bc71faf88",
      "parents": [
        "13b58ee51802a45d2b8853ffe0003d9fa768195c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Mon Oct 17 06:02:00 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 14:47:16 2005 -0700"
      },
      "message": "[PATCH] NFS: Fix cache consistency races\n\nIf the data cache has been marked as potentially invalid by nfs_refresh_inode,\nwe should invalidate it rather than assume that changes are due to our own\nactivity.\n\nAlso ensure that we always start with a valid cache before declaring it\nto be protected by a delegation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3063d8a16643190f9e12e9c7e9f1ca56f7e7934e",
      "tree": "e44b1e23f7a7c642d9ef5040a2bc0b753e0fad99",
      "parents": [
        "278c995c8a153bb2a9bc427e931cfb9c8034c9d7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 25 16:25:57 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:59 2005 -0400"
      },
      "message": "NFS: Make /proc/mounts display the protocol used by NFSv4\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03bf4b707eee06706c9db343dd5c905b7ee47ed2",
      "tree": "54f89b578758e2bf2650b647ae1c7100c882a757",
      "parents": [
        "3167e12c0c424f3c323944701615343022d86418"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:55 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:53 2005 -0400"
      },
      "message": "[PATCH] RPC: parametrize various transport connect timeouts\n\n Each transport implementation can now set unique bind, connect,\n reestablishment, and idle timeout values.  These are variables,\n allowing the values to be modified dynamically.  This permits\n exponential backoff of any of these values, for instance.\n\n As an example, we implement exponential backoff for the connection\n reestablishment timeout.\n\n Test-plan:\n Destructive testing (unplugging the network temporarily).  Connectathon\n with UDP and TCP.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eab5c084b858fd95a873fc2b97de9a9ad937b4ed",
      "tree": "6ba8287570ecc83fed1512bd4901df979221c2ab",
      "parents": [
        "da35187801732397a7e05fb9e77f3700cc35f5db"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:14 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:06 2005 -0400"
      },
      "message": "[PATCH] NFS: use a constant value for TCP retransmit timeouts\n\n Implement a best practice: don\u0027t use exponential backoff when computing\n retransmit timeout values on TCP connections, but simply retransmit\n at regular intervals.\n\n This also fixes a bug introduced when xprt_reset_majortimeo() was added.\n\n Test-plan:\n Enable RPC debugging and watch timeout behavior on a NFS/TCP mount.\n\n Version: Thu, 11 Aug 2005 16:02:19 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fef266580e5cf897a1b63528fc6b1185e2d6bb87",
      "tree": "a432a35914b8a74f0c8c73ca57257c7e609365d3",
      "parents": [
        "e85b565233236a2a833adea73fb2f0e0f8fa2a61"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 09 13:01:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:27 2005 -0700"
      },
      "message": "[PATCH] update filesystems for new delete_inode behavior\n\nUpdate the file systems in fs/ implementing a delete_inode() callback to\ncall truncate_inode_pages().  One implementation note: In developing this\npatch I put the calls to truncate_inode_pages() at the very top of those\nfilesystems delete_inode() callbacks in order to retain the previous\nbehavior.  I\u0027m guessing that some of those could probably be optimized.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc59250c6ebed099a9bc0a11298e2281dd896657",
      "tree": "80c294437c0868d90abfa617d873370e6dbe6565",
      "parents": [
        "412d582ec1dd59aab2353f8cb7e74f2c79cd20b9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 18 11:24:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 18 12:53:57 2005 -0700"
      },
      "message": "[PATCH] NFS: Introduce the use of inode-\u003ei_lock to protect fields in nfsi\n\nDown the road we want to eliminate the use of the global kernel lock entirely\nfrom the NFS client.  To do this, we need to protect the fields in the\nnfs_inode structure adequately.  Start by serializing updates to the\n\"cache_validity\" field.\n\nNote this change addresses an SMP hang found by njw@osdl.org, where processes\ndeadlock because nfs_end_data_update and nfs_revalidate_mapping update the\n\"cache_validity\" field without proper serialization.\n\nTest plan:\n Millions of fsx ops on SMP clients.  Run Nick Wilson\u0027s breaknfs program on\n large SMP clients.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "412d582ec1dd59aab2353f8cb7e74f2c79cd20b9",
      "tree": "9088c5e29cbd4b33e907a7b5f9a950dd0dce36c1",
      "parents": [
        "5529680981807b44abf3be30fb6d612ff04f68ff"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 18 11:24:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 18 12:53:56 2005 -0700"
      },
      "message": "[PATCH] NFS: use atomic bitops to manipulate flags in nfsi-\u003eflags\n\nIntroduce atomic bitops to manipulate the bits in the nfs_inode structure\u0027s\n\"flags\" field.\n\nUsing bitops means we can use a generic wait_on_bit call instead of an ad hoc\nlocking scheme in fs/nfs/inode.c, so we can remove the \"nfs_i_wait\" field from\nnfs_inode at the same time.\n\nThe other new flags field will continue to use bitmask and logic AND and OR.\nThis permits several flags to be set at the same time efficiently.  The\nfollowing patch adds a spin lock to protect these flags, and this spin lock\nwill later cover other fields in the nfs_inode structure, amortizing the cost\nof using this type of serialization.\n\nTest plan:\n Millions of fsx ops on SMP clients.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5529680981807b44abf3be30fb6d612ff04f68ff",
      "tree": "57da4e9135c0a85c1f8c6bc797250c0209420b51",
      "parents": [
        "3c7bf1eaee1255315fc7c2c4c300295e556ef768"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 18 11:24:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 18 12:53:56 2005 -0700"
      },
      "message": "[PATCH] NFS: split nfsi-\u003eflags into two fields\n\nCertain bits in nfsi-\u003eflags can be manipulated with atomic bitops, and some\nare better manipulated via logical bitmask operations.\n\nThis patch splits the flags field into two.  The next patch introduces atomic\nbitops for one of the fields.\n\nTest plan:\n Millions of fsx ops on SMP clients.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65e4308d2500e7daf60c3dccc202c61ffb066c63",
      "tree": "76a2e00004f645d09b2e59b485fb2aea0af45234",
      "parents": [
        "367ae3cd74bdc2ad32d71293427fec570b14ddcd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 16 11:49:44 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Aug 16 09:30:58 2005 -0700"
      },
      "message": "[PATCH] NFS: Ensure we always update inode-\u003ei_mode when doing O_EXCL creates\n\nWhen the client performs an exclusive create and opens the file for writing,\na Netapp filer will first create the file using the mode 01777. It does this\nsince an NFSv3/v4 exclusive create cannot immediately set the mode bits.\nThe 01777 mode then gets put into the inode-\u003ei_mode. After the file creation\nis successful, we then do a setattr to change the mode to the correct value\n(as per the NFS spec).\n\nThe problem is that nfs_refresh_inode() no longer updates inode-\u003ei_mode, so\nthe latter retains the 01777 mode. A bit later, the VFS notices this, and calls\nremove_suid(). This of course now resets the file mode to inode-\u003ei_mode \u0026 0777.\nHey presto, the file mode on the server is now magically changed to 0777. Duh...\n\nFixes http://bugzilla.linux-nfs.org/show_bug.cgi?id\u003d32\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3da28eb1c6545fe73263a24eba0996217490e1eb",
      "tree": "944ccf9418c75a5c0b121f2c554c92dc93de1efa",
      "parents": [
        "c6a556b88adfacd2af90be84357c8165d716c27d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:31 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:39 2005 -0400"
      },
      "message": "[PATCH] NFS: Replace nfs_page insertion sort with a radix sort\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe51beecc55d0b0dce289e4758e7c529a642f63e",
      "tree": "9790d77fafbb52b9237ecd65c57002e87f914e12",
      "parents": [
        "7d52e86274e09fce8ac8f963e3605a84d0a305a7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:30 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:37 2005 -0400"
      },
      "message": "[PATCH] NFS: Ensure that fstat() always returns the correct mtime\n\n Even if the file is open for writes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d52e86274e09fce8ac8f963e3605a84d0a305a7",
      "tree": "b9ecc05bbdff94aa344f39b53756bfddbd9db123",
      "parents": [
        "951a143b3fcf15cfa9d38250b7462f821db241db"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:30 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:37 2005 -0400"
      },
      "message": "[PATCH] NFS: Cleanup of caching code, and slight optimization of writes.\n\n Unless we\u0027re doing O_APPEND writes, we really don\u0027t care about revalidating\n the file length. Just make sure that we catch any page cache invalidations.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "951a143b3fcf15cfa9d38250b7462f821db241db",
      "tree": "6e4ea13c5f48cc3e1ac1c8649dd0f9f20c502e20",
      "parents": [
        "08e9eac42edab63bce14b5c8419771f3c92aa3f4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:30 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:36 2005 -0400"
      },
      "message": "[PATCH] NFS: Fix the file size revalidation\n\n Instead of looking at whether or not the file is open for writes before\n we accept to update the length using the server value, we should rather\n be looking at whether or not we are currently caching any writes.\n\n Failure to do so means in particular that we\u0027re not updating the file\n length correctly after obtaining a POSIX or BSD lock.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0dd2136da6d2070e12bfa6d199b136318e666c7",
      "tree": "a261d4b4d9e29dbce104cf9515a0a209cff387cf",
      "parents": [
        "00a926422765064cb28e218d4837411c88bf6a3e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:29 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:34 2005 -0400"
      },
      "message": "[PATCH] NFS: Clean up readdir changes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "00a926422765064cb28e218d4837411c88bf6a3e",
      "tree": "1e9ad635821c7b037014307d1a2657dc56b17acf",
      "parents": [
        "ae3884621bf5b4caff7785b9a417f262202965b2"
      ],
      "author": {
        "name": "Olivier Galibert",
        "email": "galibert@pobox.com",
        "time": "Wed Jun 22 17:16:29 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:33 2005 -0400"
      },
      "message": "[PATCH] NFS: Hide NFS server-generated readdir cookies from userland\n\n NFSv3 currently returns the unsigned 64-bit cookie directly to\n userspace. The following patch causes the kernel to generate\n loff_t offsets for the benefit of userland.\n The current server-generated READDIR cookie is cached in the\n nfs_open_context instead of in filp-\u003ef_pos, so we still end up work\n correctly under directory insertions/deletion.\n\n Signed-off-by: Olivier Galibert \u003cgalibert@pobox.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "458818ed76d3f495f9f32373c936456c9427f759",
      "tree": "cf280ec14954d61fea2f171eaa198196fe5a1e56",
      "parents": [
        "5c6a9f7d92291c832d47e792ed1fafa44acb066e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:27 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:26 2005 -0400"
      },
      "message": "[PATCH] NFS: Fix up v3 ACL caching code\n\n Initialize the inode cache values correctly.\n Clean up __nfs3_forget_cached_acls()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "055ffbea0596942579b0dae71d5dab78de8135f6",
      "tree": "4799088989e9923c45089cab905f40247af52a45",
      "parents": [
        "b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Wed Jun 22 17:16:27 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:24 2005 -0400"
      },
      "message": "[PATCH] NFS: Fix handling of the umask when an NFSv3 default acl is present.\n\n NFSv3 has no concept of a umask on the server side: The client applies\n the umask locally, and sends the effective permissions to the server.\n This behavior is wrong when files are created in a directory that has a\n default ACL.  In this case, the umask is supposed to be ignored, and\n only the default ACL determines the file\u0027s effective permissions.\n\n Usually its the server\u0027s task to conditionally apply the umask.  But\n since the server knows nothing about the umask, we have to do it on the\n client side.  This patch tries to fetch the parent directory\u0027s default\n ACL before creating a new file, computes the appropriate create mode to\n send to the server, and finally sets the new file\u0027s access and default\n acl appropriately.\n\n Many thanks to Buck Huppmann \u003cbuchk@pobox.com\u003e for sending the initial\n version of this patch, as well as for arguing why we need this change.\n\n Signed-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\n Acked-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704",
      "tree": "83eb405f3ff78c17695999df38c99484e3aee01f",
      "parents": [
        "a257cdd0e2179630d3201c32ba14d7fcb3c3a055"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Wed Jun 22 17:16:27 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:24 2005 -0400"
      },
      "message": "[PATCH] NFS: Add support for NFSv3 ACLs\n\n This adds acl support fo nfs clients via the NFSACL protocol extension, by\n implementing the getxattr, listxattr, setxattr, and removexattr iops for the\n system.posix_acl_access and system.posix_acl_default attributes.  This patch\n implements a dumb version that uses no caching (and thus adds some overhead).\n (Another patch in this patchset adds caching as well.)\n\n Signed-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\n Acked-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6a19275ada9137435da58990c8f8d3f58e170bf1",
      "tree": "927f8aa96c9b558a0bed5355dde66df9c0ec8554",
      "parents": [
        "438b6fdebf2a2e8573e7290bc176feb4d4475f43"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:23 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:16 2005 -0400"
      },
      "message": "[PATCH] RPC: [PATCH] improve rpcauthauth_create error returns\n\n Currently we return -ENOMEM for every single failure to create a new auth.\n This is actually accurate for auth_null and auth_unix, but for auth_gss it\u0027s a\n bit confusing.\n\n Allow rpcauth_create (and the -\u003ecreate methods) to return errors.  With this\n patch, the user may sometimes see an EINVAL instead.  Whee.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e50a1c2e1f816c81eed6a589019052cb44189267",
      "tree": "e59dd290e136bd0eb5fc56d325bf34f5ca1efdfb",
      "parents": [
        "4b580ee3dc00f9828a9a7aad2724f448fdc94075"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:23 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:15 2005 -0400"
      },
      "message": "[PATCH] NFSv4: client-side caching NFSv4 ACLs\n\n Add nfs4_acl field to the nfs_inode, and use it to cache acls.  Only cache\n acls of size up to a page.  Also prepare for up to a page of acl data even\n when the user doesn\u0027t pass in a buffer, as when they want to get the acl\n length to decide what size buffer to allocate.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ada70d9425bcc5e376fef8591e4e76e204c0834c",
      "tree": "0bf6c369540c467e96555118155cae191fbf71e6",
      "parents": [
        "92cfc62cb8412c9563860b1bf70cd4701f03092e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:22 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:09 2005 -0400"
      },
      "message": "[PATCH] NFS: Add hooks to allow common NFS attribute code to clear cached acls\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "92cfc62cb8412c9563860b1bf70cd4701f03092e",
      "tree": "13b75734522c0cbf6d1ba0663d07ecc13a4f464c",
      "parents": [
        "464a98bd70bae8c559cfc82af799faf44824ce64"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:22 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:09 2005 -0400"
      },
      "message": "[PATCH] NFS: Allow NFS versions to support different sets of inode operations.\n\n ACL support will require supporting additional inode operations in v4\n (getxattr, setxattr, listxattr).  This patch allows different protocol versions\n to support different inode operations by adding a file_inode_ops to the\n nfs_rpc_ops (to match the existing dir_inode_ops).\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "464a98bd70bae8c559cfc82af799faf44824ce64",
      "tree": "06013db965c1450bfa800bd9c7e8eca35d320f77",
      "parents": [
        "96651ab341cde0fee940ec837f323d711cbfa7d5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:21 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:08 2005 -0400"
      },
      "message": "[PATCH] NFS: cleanup: shrink struct nfs_open_context\n\n Remove the wait queue, and replace the functions that depended on it\n with wait_on_bit().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ce79717ce32a9f88c1ddce4b9658556cb59d37a",
      "tree": "7f0c5e4bdbc2ee15b8e902b951d1be200b35411f",
      "parents": [
        "9085bbcb76421a90bea28f4d3d03fa9977319c49"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:21 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:06 2005 -0400"
      },
      "message": "[PATCH] NFS: Header file cleanup...\n\n - Move NFSv4 state definitions into a private header file.\n - Clean up gunk in nfs_fs.h\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "9085bbcb76421a90bea28f4d3d03fa9977319c49"
}
