)]}'
{
  "log": [
    {
      "commit": "7451c4f0ee53e36fd74168af8df75b28fd04a2aa",
      "tree": "d981de4189c559d8e0a9f291c9919dde396c9a04",
      "parents": [
        "b9d9506d944865876e67281a4e4269d823ce5381"
      ],
      "author": {
        "name": "Carsten Otte",
        "email": "cotte@de.ibm.com",
        "time": "Wed Apr 19 13:06:37 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 13:06:37 2006 -0400"
      },
      "message": "NFS: remove needless check in nfs_opendir()\n\nLocal variable res was initialized to 0 - no check needed here.\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\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": "e99170ff3b799a9fd43d538932a9231fac1de9d4",
      "tree": "b5926023a010c4f8b3993ff6d06cfd51a9462613",
      "parents": [
        "7866babad542bb5e1dc95deb5800b577abef58dd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 18 13:21:42 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 12:43:47 2006 -0400"
      },
      "message": "NFS,SUNRPC: Fix compiler warnings if CONFIG_PROC_FS \u0026 CONFIG_SYSCTL are unset\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "95cf959b245832ad49bb333bf88f9805244b225d",
      "tree": "956205e6be9f70d39124faa464111c2a821f75e4",
      "parents": [
        "d4a30e7e66c004da26dfe5229af7c10fe9853a7a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Apr 18 13:14:06 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 12:43:46 2006 -0400"
      },
      "message": "VFS: Fix another open intent Oops\n\nIf the call to nfs_intent_set_file() fails to open a file in\nnfs4_proc_create(), we should return an error.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4b6f5d20b04dcbc3d888555522b90ba6d36c4106",
      "tree": "420f271eaef7d3def7d4433b151c3cb6d7a54770",
      "parents": [
        "99ac48f54a91d02140c497edc31dc57d4bc5c85d"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Tue Mar 28 01:56:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:06 2006 -0800"
      },
      "message": "[PATCH] Make most file operations structs in fs/ const\n\nThis is a conversion to make the various file_operations structs in fs/\nconst.  Basically a regexp job, with a few manual fixups\n\nThe goal is both to increase correctness (harder to accidentally write to\nshared datastructures) and reducing the false sharing of cachelines with\nthings that get dirty in .data (while .rodata is nicely read only and thus\ncache clean)\n\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "93d2341c750cda0df48a6cc67b35fe25f1ec47df",
      "tree": "f098a3bbfae65ce967591ee94d605c6e6bea21c6",
      "parents": [
        "fec433aaaae32a02329ad7d71b0f3c91b7525077"
      ],
      "author": {
        "name": "Matthew Dobson",
        "email": "colpatch@us.ibm.com",
        "time": "Sun Mar 26 01:37:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:00 2006 -0800"
      },
      "message": "[PATCH] mempool: use mempool_create_slab_pool()\n\nModify well over a dozen mempool users to call mempool_create_slab_pool()\nrather than calling mempool_create() with extra arguments, saving about 30\nlines of code and increasing readability.\n\nSigned-off-by: Matthew Dobson \u003ccolpatch@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ff28e22bdb8727fbc7d7889807bc5a73aae56c5",
      "tree": "f7418aa963d729bf9fe8bd44d6c9b6e424a6c6bf",
      "parents": [
        "3978d7179d3849848df8a37dd0a5acc20bcb8750"
      ],
      "author": {
        "name": "NeilBrown",
        "email": "neilb@suse.de",
        "time": "Sun Mar 26 01:37:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] Make address_space_operations-\u003einvalidatepage return void\n\nThe return value of this function is never used, so let\u0027s be honest and\ndeclare it as void.\n\nSome places where invalidatepage returned 0, I have inserted comments\nsuggesting a BUG_ON.\n\n[akpm@osdl.org: JBD BUG fix]\n[akpm@osdl.org: rework for git-nfs]\n[akpm@osdl.org: don\u0027t go BUG in block_invalidate_page()]\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nAcked-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "353ab6e97b8f209dbecc9f650f1f84e3da2a7bb1",
      "tree": "bffabd9a5a493ffd2b41dd825e71e848ca6ba6d7",
      "parents": [
        "e655a250d5fc12b6dfe0d436180ba4a3bfffdc9f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 26 01:37:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] sem2mutex: fs/\n\nSemaphore to mutex conversion.\n\nThe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Eric Van Hensbergen \u003cericvh@ericvh.myip.org\u003e\nCc: Robert Love \u003crml@tech9.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\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": "096455a22acac06fb6d0d75f276170ab72d55ba6",
      "tree": "ba2f522da3e248720b919bc94193f791a239821c",
      "parents": [
        "9e57b302cf0f27063184196def620f39ca7a5fc6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Mon Mar 20 23:23:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 23:23:42 2006 -0500"
      },
      "message": "NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n\nThanks to Frank Filz for pointing out that we list system.nfs4_acl extended\nattribute even on filesystems where we don\u0027t actually support nfs4_acl.\nThis is inconsistent with the e.g. ext3 POSIX ACL behaviour, and seems to\nannoy cp.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a1218a277c45cba1fb8d7089407a1769c645c43",
      "tree": "c59634979c53606696993ef06297045015791d6e",
      "parents": [
        "43ac3f2961b8616da26114ec6dc76ac2a61f76ad"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 18:11:10 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 18:11:10 2006 -0500"
      },
      "message": "SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n\nCurrently this will not happen if we exit before rpc_new_task() was called.\nAlso fix up rpc_run_task() to do the same (for consistency).\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\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": "7d46a49f512e8d10b23353781a8ba85edd4fa640",
      "tree": "8da455d9f2f80f6c8ee82ec85449d2eb0ea12aba",
      "parents": [
        "deb7d638262019cbac5d15ab74ffd1c29242c7cb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "message": "NFS: Clean up nfs_flush_list()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "deb7d638262019cbac5d15ab74ffd1c29242c7cb",
      "tree": "88095acd2d455b594f4cec08702aa9691faff2a0",
      "parents": [
        "1dd761e9070aa2e543df3db41bd75ed4b8f2fab9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:50 2006 -0500"
      },
      "message": "NFS: Fix a race with PG_private and nfs_release_page()\n\nWe don\u0027t need to set PG_private for readahead pages, since they never get\nunlocked while I/O is in progress. However there is a small race in\nnfs_readpage_release() whereby the page may be unlocked, and have\nPG_private set.\n\nFix is to have PG_private set only for the case of writes...\n\nAlso fix a bug in nfs_clear_page_writeback(): Don\u0027t attempt to clear the\nradix_tree tag if we\u0027ve already deleted the radix tree entry.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1dd761e9070aa2e543df3db41bd75ed4b8f2fab9",
      "tree": "7709d032855e0e821f3ff4ce9efc3bdb82bf4d2d",
      "parents": [
        "5428154827c2bf7cfdc9dab60db1e0eaa57c027a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:49 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:49 2006 -0500"
      },
      "message": "NFSv4: Ensure the callback daemon flushes signals\n\nIf the callback daemon is signalled, but is unable to exit because it still\nhas users, then we need to flush signals. If not, then svc_recv() can\nnever sleep, and so we hang.\nIf we flush signals, then we also have to be prepared to resend them when\nwe want the thread to exit.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a9a801787a761616589a6526d7a29c13f4deb3d8",
      "tree": "73754598e8c65cf18f0a96ca3c32433dcb34cbe7",
      "parents": [
        "03f28e3a2059fc466761d872122f30acb7be61ae"
      ],
      "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, NLM: Allow blocking locks to respect signals\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": "51581f3bf922512880f52a7777923fd6dcfc792b",
      "tree": "91e9c6c6a89705e76ec07574d296967c3bde24a9",
      "parents": [
        "3e4f6290ca4df7464ee066123f2bca4298c2dab4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:47 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:47 2006 -0500"
      },
      "message": "NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3e4f6290ca4df7464ee066123f2bca4298c2dab4",
      "tree": "a8a2b32348be0df1a886ca0960112d23e1458572",
      "parents": [
        "f25bc34967d76610d17bc70769d7c220976eeeb1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "message": "NFSv4: Send the delegation stateid for SETATTR calls\n\nIn the case where we hold a delegation stateid, use that in for inside\nSETATTR calls.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f25bc34967d76610d17bc70769d7c220976eeeb1",
      "tree": "f967791903a28f75968a7ce641f9a61502c037ba",
      "parents": [
        "6041b79192bdf0e7ab18ea6859effa5d8311391b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:46 2006 -0500"
      },
      "message": "NFSv4: Ensure nfs_callback_down() calls svc_destroy()\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e4cd038a45a46ffbe06a1a72f3f15246e5b041ca",
      "tree": "61b926d8644ce6c3888f6891ba44d6db6d116adb",
      "parents": [
        "3a649b884637c4fdff50a6beebc3dc0e6082e048"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:44 2006 -0500"
      },
      "message": "NLM: Fix nlmclnt_test to not copy private part of locks\n\nThe struct file_lock does not carry a properly initialised lock,\nso don\u0027t copy it as if it were.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d72b7a6b26b9009b7a05117fe2e04b3a73ae4a5c",
      "tree": "dcdbc9386b19e4976cf156baf35985016c1d28f4",
      "parents": [
        "6b45d858ed6821dd687efd3b68929de2e4954fec"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "message": "NFS: O_DIRECT needs to use a completion\n\nNow that we have aio writes, it is possible for dreq-\u003eoutstanding to be\nzero, but for the I/O not to have completed. Convert struct nfs_direct_req\nto use a completion to signal when the I/O is done.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b45d858ed6821dd687efd3b68929de2e4954fec",
      "tree": "fcc25885f02133177e2bc093f8cd09879cbd05cf",
      "parents": [
        "606bbba06b11ebcbdf3a4fcd8cce4507c5bd7a4b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:43 2006 -0500"
      },
      "message": "NFS: Clean up nfs_get_user_pages\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "606bbba06b11ebcbdf3a4fcd8cce4507c5bd7a4b",
      "tree": "b2cb6a1210aa45da2856c0846ad3e835b41629d4",
      "parents": [
        "5eb53f41d11c04aa4ddb9f168b6bbb27b9790348"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:42 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:42 2006 -0500"
      },
      "message": "NFS: fix compiler warnings on 64-bit platforms\n\nIntroduced by NFS aio+dio patches.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled on 64-bit hardware.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3feb2d49394b7874348a6e43c076b780c1d222c5",
      "tree": "6d27d4170fd9435574bd804033793f9d0d69a355",
      "parents": [
        "5db3a7b2cabe8f0957683f798c4f8fa8605f9ebb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "message": "NFS: Uninline nfs_writedata_(alloc|free) and nfs_readdata_(alloc|free)\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5db3a7b2cabe8f0957683f798c4f8fa8605f9ebb",
      "tree": "969aa2e7561796b3b8796a2f6645693f7ebe8d20",
      "parents": [
        "a8881f5a5c723f82da84b786d3ca83a0df9e0c33"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:37 2006 -0500"
      },
      "message": "NFS: Debugging code for nfs_direct_(read|write)_schedule()\n\nMake sure that we\u0027re doing our list accounting correctly.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a8881f5a5c723f82da84b786d3ca83a0df9e0c33",
      "tree": "50e01d4a0d3b803a5103e427e94a316d7ec92c81",
      "parents": [
        "fad61490419b3e494f300e9b2579810ef3bcda31"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "message": "NFS: O_DIRECT async IO may lose context\n\nThe struct nfs_direct_req currently keeps a pointer to the file descriptor\nwithout referencing it. This may cause problems if the parent process is\nkilled.\n\nThe nfs_open_context should normally have all the information that we\u0027re\ncurrently using the filp for, and unlike fput(), is safe to release from\nan rpciod process context.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fad61490419b3e494f300e9b2579810ef3bcda31",
      "tree": "1bca68921a83d4dc0219aa8d46c3c8e8313965c2",
      "parents": [
        "e17b1fc4b35399935f00a635206e183d9292fe4f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:36 2006 -0500"
      },
      "message": "nfs: Use UNSTABLE + COMMIT for NFS O_DIRECT writes\n\nCurrently NFS O_DIRECT writes use FILE_SYNC so that a COMMIT is not\nnecessary.  This simplifies the internal logic, but this could be a\ndifficult workload for some servers.\n\nInstead, let\u0027s send UNSTABLE writes, and after they all complete, send a\nCOMMIT for the dirty range.  After the COMMIT returns successfully, then do\nthe wake_up or fire off aio_complete().\n\nTest plan:\nAsync direct I/O tests against Solaris (or any server that requires\ncommitted unstable writes).  Reboot server during test.\n\nBased on an earlier patch by Chuck Lever \u003ccel@netapp.com\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e17b1fc4b35399935f00a635206e183d9292fe4f",
      "tree": "950fd4a83d7b6ff89286fd89a9871b0da66a4435",
      "parents": [
        "a37ec012d7fd352648c8455d3396ea24001efcd3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "message": "NFS: Make nfs_commit_alloc() extern\n\nWe need to use nfs_commit_alloc() in fs/nfs/direct.c.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a37ec012d7fd352648c8455d3396ea24001efcd3",
      "tree": "778182e20ada2cf1ce3a5507ab1eec96c16633b2",
      "parents": [
        "15ce4a0c1ce0d5e288398cb9e5493fd4e55e2025"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:35 2006 -0500"
      },
      "message": "NFS: fix data_update accounting in NFS direct I/O path\n\n^C against \"iozone -I\" is hitting the assertion in nfs_clear_inode().\n\nTest plan:\n\"iozone -i0 -I -a -c\" against a slow server, then control C.  This should\nnot cause an oops.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "15ce4a0c1ce0d5e288398cb9e5493fd4e55e2025",
      "tree": "b40b3096bbbed8b0aa2a29e9374240dd7eaa47a0",
      "parents": [
        "88467055f7654302c12df74e5fe4d12516656a39"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "message": "NFS: Replace atomic_t variables in nfs_direct_req with a single spin lock\n\nThree atomic_t variables cause a lot of bus locking.  Because they are all\nused in the same places in the code, just use a single spin lock.\n\nNow that the atomic_t variables are gone, we can remove the request size\nlimitation since the code no longer depends on the limited width of atomic_t\non some platforms.\n\nTest plan:\nCompile with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.  Millions of fsx\noperations, iozone, OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "88467055f7654302c12df74e5fe4d12516656a39",
      "tree": "cf1ccdc6a933bcd93665fcea4947e0f7f59d5241",
      "parents": [
        "9eafa8cc521b489f205bf7b0634c99e34e046606"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:34 2006 -0500"
      },
      "message": "NFS: clean up comments and tab damage in direct.c\n\nClean up tab damage and comments.  Replace \"file_offset\" with more commonly\nused \"pos\".\n\nTest plan:\nCompile with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9eafa8cc521b489f205bf7b0634c99e34e046606",
      "tree": "5afa96efb2dcd0a211402603977b2ce0428a9741",
      "parents": [
        "c89f2ee5f9223b864725f7344f24a037dfa76568"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "message": "NFS: support EIOCBQUEUED return in direct write path\n\nFor async iocb\u0027s, the NFS direct write path now returns EIOCBQUEUED,\nand calls aio_complete when all the requested writes are finished.  The\nsynchronous part of the NFS direct write path behaves exactly as it\nwas before.\n\nShared mapped NFS files will have some coherency difficulties when\naccessed concurrently with aio+dio.  Will need to explore how this\nis handled in the local file system case.\n\nTest plan:\naio-stress with \"-O\". OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c89f2ee5f9223b864725f7344f24a037dfa76568",
      "tree": "b83235bfd96c4a81697609f61b2ce4e3de54e49b",
      "parents": [
        "47989d7454398827500d0e73766270986a3b488f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:33 2006 -0500"
      },
      "message": "NFS: make iocb available everywhere in direct write path\n\nPass the iocb argument all the way down to the direct write request\nscheduler, and make it available in nfs_direct_write_result.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "47989d7454398827500d0e73766270986a3b488f",
      "tree": "ca7c3ce3ec47d6f16fa1b42be7c468266ed3fce9",
      "parents": [
        "462d5b3296b56289efec426499a83faad4c08d9e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "message": "NFS: remove support for multi-segment iovs in the direct write path\n\nEliminate the persistent use of automatic storage in all parts of the\nNFS client\u0027s direct write path to pave the way for introducing support\nfor aio against files opened with the O_DIRECT flag.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "462d5b3296b56289efec426499a83faad4c08d9e",
      "tree": "eb4f9a0418e1190958603360cf9bcea0cbb67727",
      "parents": [
        "63ab46abc70b01cb0711301f5ddb08c1c0bb9b1c"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:32 2006 -0500"
      },
      "message": "NFS: make direct write path generate write requests concurrently\n\nDuplicate infrastructure from direct read path that will allow write\npath to generate multiple write requests concurrently.  This will\nenable us to add support for aio in this path.\n\nTemporarily we will lose the ability to do UNSTABLE writes followed by\na COMMIT in the direct write path.  However, all applications I am\naware of that use NFS O_DIRECT currently write in relatively small\nchunks, so this should not be inconvenient in any way.\n\nTest plan:\nMillions of fsx-odirect ops. OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "63ab46abc70b01cb0711301f5ddb08c1c0bb9b1c",
      "tree": "4d1d03a95f1468d240c3c7e0cd207fc14aa54023",
      "parents": [
        "93619e5989173614bef0013b0bb8a3fe3dbd5a95"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "message": "NFS: create common routine for handling direct I/O completion\n\nFactor out the common piece of completing an NFS direct I/O request.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "93619e5989173614bef0013b0bb8a3fe3dbd5a95",
      "tree": "2172226a57bae4db4943d271e5250fd0606a74d1",
      "parents": [
        "bc0fb201b34b12e2d16e8cbd5bb078c1db936304"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "message": "NFS: create common routine for allocating nfs_direct_req\n\nFactor out a small common piece of the path that allocate nfs_direct_req\nstructures.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bc0fb201b34b12e2d16e8cbd5bb078c1db936304",
      "tree": "58a9aa8bee2de7e42f81c522115cd10078a6a5ef",
      "parents": [
        "487b83723ed4d4eaafd5109f36560da4f15c6578"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:31 2006 -0500"
      },
      "message": "NFS: create common routine for waiting for direct I/O to complete\n\nWe\u0027re about to add asynchrony to the NFS direct write path.  Begin by\nabstracting out the common pieces in the read path.\n\nThe first piece is nfs_direct_read_wait, which works the same whether the\nprocess is waiting for a read or a write.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "487b83723ed4d4eaafd5109f36560da4f15c6578",
      "tree": "8c869604c0b934f5b207c89e90aea9977c5d8ade",
      "parents": [
        "99514f8fdda2beef1ca922b7f9d89c1a2c57fec0"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "message": "NFS: support EIOCBQUEUED return in direct read path\n\nFor async iocb\u0027s, the NFS direct read path should return EIOCBQUEUED and\ncall aio_complete when all the requested reads are finished.  The\nsynchronous part of the NFS direct read path behaves exactly as it was\nbefore.\n\nTest plan:\naio-stress with \"-O\".  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "99514f8fdda2beef1ca922b7f9d89c1a2c57fec0",
      "tree": "74a96ad19ed705775d9cd87b79c28aafe0286dee",
      "parents": [
        "0cdd80d07fb0f558dfdb30f6e0b9905f5e5475f1"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:30 2006 -0500"
      },
      "message": "NFS: make iocb available everywhere in direct read path\n\nPass the iocb argument all the way down to the direct read request\nscheduler, and make it available in nfs_direct_read_result.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0cdd80d07fb0f558dfdb30f6e0b9905f5e5475f1",
      "tree": "c25fe5e4bdb4196039bf5b098c1c9f58e98af2e2",
      "parents": [
        "5dd602f20688e08c85ac91e0451c4e6321ed25d7"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "message": "NFS: remove support for multi-segment iovs in the direct read path\n\nEliminate the persistent use of automatic storage in all parts of the NFS\nclient\u0027s direct read path to pave the way for introducing support for aio\nagainst files opened with the O_DIRECT flag.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.\nMillions of fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5dd602f20688e08c85ac91e0451c4e6321ed25d7",
      "tree": "e89a89d68ec0fcdc6fd18570c0df9daa15e23902",
      "parents": [
        "d4cc948ba97980c55a308eab167a695109796456"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:29 2006 -0500"
      },
      "message": "NFS: use size_t type for holding rsize bytes in NFS O_DIRECT read path\n\nsize_t is used for holding byte counts, so use it for variables storing rsize.\nNote that the write path will be updated as we add support for async\nO_DIRECT writes.\n\nTest plan:\nNeed to verify that existing comparisons against new size_t variables behave\ncorrectly.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d4cc948ba97980c55a308eab167a695109796456",
      "tree": "fbf3b293b8ac129019723fe53dca0329c7552c13",
      "parents": [
        "b8a32e2b8b7fefff994c89d398b6ac920a195b43"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "message": "NFS: update comments and function definitions in fs/nfs/direct.c\n\nUpdate to latest coding style standards.  Remove block comments on\nstatically defined functions, and place function definitions all on\none line.\n\nTest plan:\nCompile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b8a32e2b8b7fefff994c89d398b6ac920a195b43",
      "tree": "20f0c2610eddb104a8cbf1d7981b34fc962a92ea",
      "parents": [
        "ec06c096edec0755534c7126f4caded69de131c2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:28 2006 -0500"
      },
      "message": "NFS: clean up NFS client\u0027s a_ops-\u003edirect_IO method\n\nThe NFS client\u0027s a_ops-\u003edirect_IO method, nfs_direct_IO, is required to\nbe present to allow NFS files to be opened with O_DIRECT, but is never\ncalled because the NFS client shunts reads and writes to files opened\nwith O_DIRECT directly to its own routines.\n\nGut the nfs_direct_IO function.  This eliminates the only part of the\nNFS client\u0027s direct I/O path that requires support for multi-segment\niovs, allowing further simplification in subsequent patches.\n\nTest plan:\nCompile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled.  Millions\nof fsx-odirect ops.  OraSim.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec06c096edec0755534c7126f4caded69de131c2",
      "tree": "1f5b219c09dea1d9886cefe3ea3f7cef560a5e9a",
      "parents": [
        "788e7a89a03e364855583c0ab4649b94925efbb9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "message": "NFS: Cleanup of NFS read code\n\nSame callback hierarchy inversion as for the NFS write calls. This patch is\nnot strictly speaking needed by the O_DIRECT code, but avoids confusing\ndifferences between the asynchronous read and write code.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "788e7a89a03e364855583c0ab4649b94925efbb9",
      "tree": "4434c93af133a92f550ba0ecc8d3254cb222e72d",
      "parents": [
        "7117bf3dfb10b534a017260d9fc643bc1d0afd2a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:27 2006 -0500"
      },
      "message": "NFS: Cleanup of NFS write code in preparation for asynchronous o_direct\n\nThis patch inverts the callback hierarchy for NFS write calls.\n\nInstead of having the NFSv2/v3/v4-specific code set up the RPC callback\nops, we allow the original caller to do so. This allows for more\nflexibility w.r.t. how to set up and tear down the nfs_write_data\nstructure while still allowing the NFSv3/v4 code to perform error\nhandling.\n\nThe greater flexibility is needed by the asynchronous O_DIRECT code, which\nwants to be able to hold on to the original nfs_write_data structures after\nthe WRITE RPC call has completed in order to be able to replay them if the\nCOMMIT call determines that the server has rebooted.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8dc7c3115b611c00006eac3ee5b108296432aab7",
      "tree": "be44c59907cbdcb6fdf46d0ad9cc140af757acfc",
      "parents": [
        "2e0af86f618c697b44e2d67dff151256c58201c4"
      ],
      "author": {
        "name": "Andy Adamson",
        "email": "andros@citi.umich.edu",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:26 2006 -0500"
      },
      "message": "locks,lockd: fix race in nlmsvc_testlock\n\nposix_test_lock() returns a pointer to a struct file_lock which is unprotected\nand can be removed while in use by the caller.  Move the conflicting lock from\nthe return to a parameter, and copy the conflicting lock.\n\nIn most cases the caller ends up putting the copy of the conflicting lock on\nthe stack.  On i386, sizeof(struct file_lock) appears to be about 100 bytes.\nWe\u0027re assuming that\u0027s reasonable.\n\nSigned-off-by: Andy Adamson \u003candros@citi.umich.edu\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1e7cb3dc12dbbac690d78c84f9c7cb11132ed121",
      "tree": "a6bc36250a6fe5a754b464099a50baf98ce36e78",
      "parents": [
        "e95b85ec9d8c8ad4667f746aa4c9d22c281efc44"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:24 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:24 2006 -0500"
      },
      "message": "NFS: directory trace messages\n\nReuse NFSDBG_DIRCACHE and NFSDBG_LOOKUPCACHE to provide additional\ndiagnostic messages that trace the operation of the NFS client\u0027s\ndirectory behavior.  A few new messages are now generated when NFSDBG_VFS\nis active, as well, to trace normal VFS activity.  This compromise\nprovides better trace debugging for those who use pre-built kernels,\nwithout adding a lot of extra noise to the standard debug settings.\n\nTest-plan:\nEnable NFS trace debugging with flags 1, 2, or 4.  You should be able to\nsee different types of trace messages with each flag setting.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dead28da8e3fb32601d38fb32b7021122e0a3d21",
      "tree": "a1a23e27e08345c86ed0d9812f848470b615eb34",
      "parents": [
        "cc0175c1dc1de8f6af0eb0631dcc5b999a6fcc42"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:23 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:23 2006 -0500"
      },
      "message": "SUNRPC: eliminate rpc_call()\n\nClean-up: replace rpc_call() helper with direct call to rpc_call_sync.\n\nThis makes NFSv2 and NFSv3 synchronous calls more computationally\nefficient, and reduces stack consumption in functions that used to\ninvoke rpc_call more than once.\n\nTest plan:\nCompile kernel with CONFIG_NFS enabled.  Connectathon on NFS version 2,\nversion 3, and version 4 mount points.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cc0175c1dc1de8f6af0eb0631dcc5b999a6fcc42",
      "tree": "b219a9c16f0ef3ff0982450c32aa0f09d503782a",
      "parents": [
        "4ece3a2d18fd7fe1d4972284a8c98c569020093f"
      ],
      "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": "SUNRPC: display human-readable procedure name in rpc_iostats output\n\nAdd fields to the rpc_procinfo struct that allow the display of a\nhuman-readable name for each procedure in the rpc_iostats output.\n\nAlso fix it so that the NFSv4 stats are broken up correctly by\nsub-procedure number.  NFSv4 uses only two real RPC procedures:\nNULL, and COMPOUND.\n\nTest plan:\nMount with NFSv2, NFSv3, and NFSv4, and do \"cat /proc/self/mountstats\".\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\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": "006ea73e5fa82915d0ac7a3f15ee7c688433236d",
      "tree": "0f522982fe3d01a74f1ad9f5f713cbd10a6b09bd",
      "parents": [
        "91d5b47023b608227d605d1e916b29dd0215bff7"
      ],
      "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 hooks to account for NFSERR_JUKEBOX errors\n\nMake an inode or an nfs_server struct available in the logic that handles\nJUKEBOX/DELAY type errors so the NFS client can account for them.\n\nThis patch is split out from the main nfs iostat patch to highlight minor\narchitectural changes required to support this statistic.\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": "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": "c9d5128a10a4974f72674ff3463da4db439e8b04",
      "tree": "304b277f5388e8285f56535db654051d0f4a2fc0",
      "parents": [
        "bd6475454c774bd9dbe6078d94bbf72b1d3b65f4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 20 13:44:11 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:11 2006 -0500"
      },
      "message": "NFS: sem2mutex idmap.c\n\nsemaphore to mutex conversion.\n\nthe conversion was generated via scripts, and the result was validated\nautomatically via a script as well.\n\nbuild and boot tested.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\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": "a162a6b804b48c605d1fd35e1861a5d32d00ad3f",
      "tree": "50b6aa7f5da5e4c34da2f9d34b93c667c5d6c054",
      "parents": [
        "967b9281361481aecf323563886ef972ee88c681"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "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": "NFSv4: Kill braindead gcc warnings\n\nnfs4_open_revalidate: \u0027res\u0027 may be used uninitialized\nnfs4_callback_compound: ‘hdr_res.nops’ may be used uninitialized\n\t\t\t\u0027op_nr’ may be used uninitialized\nencode_getattr_res: ‘savep’ may be used uninitialized\n\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": "12de3b35ea549c5819f287508d7afab0bf3ac44d",
      "tree": "c1b7f96236c4b19bcd911705017bf31bcbc2b605",
      "parents": [
        "24c5d9d7ea5a64fb5f157d17aa2c67a3300f8a08"
      ],
      "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": "SUNRPC: Ensure that rpc_mkpipe returns a refcounted dentry\n\nIf not, we cannot guarantee that idmap-\u003eidmap_dentry, gss_auth-\u003edentry and\nclnt-\u003ecl_dentry are valid dentries.\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": "c8d149f3dbd582a101aa7da7bdd6c3316efd11b4",
      "tree": "51f1d97f02ffb7e02d6f7534ab9c9fce5fa6dc20",
      "parents": [
        "ca62b9c3f7b8679ada4de94d2ab7098c6860c3d7"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.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": "NFS: \"const static\" vs \"static const\" in nfs4\n\nMy previous \"const static\" vs \"static const\" cleanup missed a single case,\npatch below takes care of it.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\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": "1dd594b21b2d98e56f2b1fe92bb222276b28de41",
      "tree": "c11a062713429112f162dc986a1b4002b0da1c83",
      "parents": [
        "cd52ed35535ef443f08bf5cd3331d350272885b8"
      ],
      "author": {
        "name": "Neil Brown",
        "email": "neilb@suse.de",
        "time": "Mon Mar 20 13:44:04 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:04 2006 -0500"
      },
      "message": "NFS: Fix buglet in fs/nfs/write.c\n\nI\u0027ve been reading through fs/nfs/write.c trying to track down a bug\nthat seems to be related to pages loosing a refcount and getting\nfreed too early (you interested in detail??) and I spotted a little\nbug which the following patch should fix.\n\nSigned-off-by: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cd52ed35535ef443f08bf5cd3331d350272885b8",
      "tree": "135c3a80b21ce478816229dc82586b12754eb49f",
      "parents": [
        "b92dccf65bab3b6b7deb79ff3321dc256eb0f53b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:04 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:04 2006 -0500"
      },
      "message": "NFS: Avoid races between writebacks and truncation\n\nCurrently, there is no serialisation between NFS asynchronous writebacks\nand truncation at the page level due to the fact that nfs_sync_inode()\ncannot lock the pages that it is about to write out.\n\nThis means that it is possible to be flushing out data (and calling something\nlike set_page_writeback()) while the page cache is busy evicting the page.\nOops...\n\nUse the hooks provided in try_to_release_page() to ensure that dirty pages\nare always written back to storage before we evict them.\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": "c12e87f4652b1ba3be168b4f63a440399b941928",
      "tree": "aa8c0ca6a6ea60042975d1ec9437620269df0182",
      "parents": [
        "712917d1c002f820b177683f4fd491289bde3c32"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 13 21:20:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 14 07:57:18 2006 -0800"
      },
      "message": "[PATCH] NFSv4: fix mount segfault on errors returned that are \u003c -1000\n\nIt turns out that nfs4_proc_get_root() may return raw NFSv4 errors instead of\nmapping them to kernel errors.  Problem spotted by Neil Horman\n\u003cnhorman@tuxdriver.com\u003e\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "143f412eb4c7cc48b9eb4381f9133b7d36c68075",
      "tree": "383c140bf7879c77781d4aa113e517a92f16991d",
      "parents": [
        "f9a3879abf2f1a27c39915e6074b8ff15a24cb55"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 13 21:20:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 14 07:57:17 2006 -0800"
      },
      "message": "[PATCH] NFS: Fix a potential panic in O_DIRECT\n\nBased on an original patch by Mike O\u0027Connor and Greg Banks of SGI.\n\nMike states:\n\nA normal user can panic an NFS client and cause a local DoS with\n\u0027judicious\u0027(?) use of O_DIRECT.  Any O_DIRECT write to an NFS file where the\nuser buffer starts with a valid mapped page and contains an unmapped page,\nwill crash in this way.  I haven\u0027t followed the code, but O_DIRECT reads with\nsimilar user buffers will probably also crash albeit in different ways.\n\nDetails: when nfs_get_user_pages() calls get_user_pages(), it detects and\ncorrectly handles get_user_pages() returning an error, which happens if the\nfirst page covered by the user buffer\u0027s address range is unmapped.  However,\nif the first page is mapped but some subsequent page isn\u0027t, get_user_pages()\nwill return a positive number which is less than the number of pages requested\n(this behaviour is sort of analagous to a short write() call and appears to be\nintentional).  nfs_get_user_pages() doesn\u0027t detect this and hands off the\narray of pages (whose last few elements are random rubbish from the newly\nallocated array memory) to it\u0027s caller, whence they go to\nnfs_direct_write_seg(), which then totally ignores the nr_pages it\u0027s given,\nand calculates its own idea of how many pages are in the array from the user\nbuffer length.  Needless to say, when it comes to transmit those uninitialised\npage* pointers, we see a crash in the network stack.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8854eddbdb3e45b8d381ecff2937a942d0cb2067",
      "tree": "25e8a0d272ed0edadb13b00e271d9933b8df34fa",
      "parents": [
        "cc59853b4a9973126e15e0e6bdddf0627d4b99c4"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jan 04 01:44:17 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Feb 07 21:00:42 2006 -0500"
      },
      "message": "[PATCH] nfsroot port\u003d parameter fix [backport of 2.4 fix]\n\nDirect backport of 2.4 fix that didn\u0027t get propagated to 2.6; original\ncomment follows:\n\u003cquote\u003e\n   When I specify the NFS port for nfsroot (e.g.,\n   nfsroot\u003d\u003cdir\u003e,port\u003d2049), the\n   kernel uses the wrong port. In my case it tries to use 264 (0x108)\n   instead\n   of 2049 (0x801).\n\n   This patch adds the missing htons().\n\n   Eric\n\u003c/quote\u003e\n\nPatch got applied in 2.4.21-pre6.  Author: Eric Lammerts (\u003ceric@lammerts.org\u003e,\nAFAICS).\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1935245655996ca4d14e687c3a100d2e2bbdc78d",
      "tree": "9b5d286f8c72ce08b3b723ef4f9af76db430894a",
      "parents": [
        "fba3bad488a2eec2d76c067edb7a5ff92ef42431"
      ],
      "author": {
        "name": "Dirk Mueller",
        "email": "dmueller@suse.com",
        "time": "Wed Feb 01 12:19:47 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Feb 01 12:52:25 2006 -0500"
      },
      "message": "NFSv3: fix sync_retry in direct i/o NFS\n\n Only do a sync_retry if the memcmp failed.\n\n Signed-off-by: Dirk Mueller \u003cdmueller@suse.com\u003e\n Signed-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": "1b1dcc1b57a49136f118a0f16367256ff9994a69",
      "tree": "b0b36d4f41d28c9d6514fb309d33c1a084d6309b",
      "parents": [
        "794ee1baee1c26be40410233e6c20bceb2b03c08"
      ],
      "author": {
        "name": "Jes Sorensen",
        "email": "jes@sgi.com",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@hera.kernel.org",
        "time": "Mon Jan 09 15:59:24 2006 -0800"
      },
      "message": "[PATCH] mutex subsystem, semaphore to mutex: VFS, -\u003ei_sem\n\nThis patch converts the inode semaphore to a mutex. I have tested it on\nXFS and compiled as much as one can consider on an ia64. Anyway your\nluck with it might be different.\n\nModified-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n\n(finished the conversion)\n\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "21b6bf143d05d77c350d9c6764ae090a877b66ea",
      "tree": "f20e74cf252ae40b17ae13814153f6546c73190d",
      "parents": [
        "850d6fbe70c62a9792eac3e8ef34f2f09f209895"
      ],
      "author": {
        "name": "Jorn Dreyer",
        "email": "j.dreyer@butonic.de",
        "time": "Sun Jan 08 01:03:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:57 2006 -0800"
      },
      "message": "[PATCH] nfsroot: do not silently stop parsing on an unknown option\n\nIt would be helpful if the kernel did not silently stop parsing\nnfs options, but instead warned about any he does not recognize. The\nattached patch adds one printk to do just that.\n\nIt took me a couple of hours to find my configuration mistake.\n\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\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": "26c78e156b1d1b2387ec33b5f2fb62d6e0a186a3",
      "tree": "fdbcdc6baa25af41d6935eebd537997fa24bf495",
      "parents": [
        "58df095b732529ade8f4051b41d7c29731afecd6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:58 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:58 2006 -0500"
      },
      "message": "NFSv4: Fix an Oops in nfs_do_expire_all_delegations\n\n If the loop errors, we need to exit.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\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": "eadb8c147154bff982f02accf31b847a1f142ace",
      "tree": "875b2cefb6a5a96dcfc956b268128d3b37f9b0d2",
      "parents": [
        "cf3fff54a46e1f8fa4cc1deb783172a392077eb0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:54 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:57 2006 -0500"
      },
      "message": "NFS: get rid of some needless code obfuscation in xdr_encode_sattr().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cf3fff54a46e1f8fa4cc1deb783172a392077eb0",
      "tree": "9dc139601f2227abfa4a8efdf996f765fbbdad60",
      "parents": [
        "f518e35aec984036903c1003e867f833747a9d79"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:53 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:57 2006 -0500"
      },
      "message": "NFS: Send valid mode bits to the server\n\n inode-\u003ei_mode contains a lot more than just the mode bits. Make sure that\n we mask away this extra stuff in SETATTR calls to the server.\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": "03c21733938aad0758f5f88e1cc7ede69fc3c910",
      "tree": "d6e7295cb3d325d1de975eb072b363212ba1f6e6",
      "parents": [
        "a659753ecc66945e9c69823fcbbe222b446c66d7"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Tue Jan 03 09:55:48 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:55 2006 -0500"
      },
      "message": "NFSv3: try get_root user-supplied security_flavor\n\n Thanks to Ed Keizer for bug and root cause.  He says: \"... we could only mount\n the top-level Solaris share. We could not mount deeper into the tree.\n Investigation showed that Solaris allows UNIX authenticated FSINFO only on the\n top level of the share. This is a problem because we share/export our home\n directories one level higher than we mount them. I.e. we share the partition\n and not the individual home directories. This prevented access to home\n directories.\"\n\n We still may need to try auth_sys for the case where the client doesn\u0027t have\n appropriate credentials.\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": "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": "fa178f29c0f8a0dce748181a5351f4a92fd4f455",
      "tree": "07de5ced8d16d832ebed98c58a2c0498affa12db",
      "parents": [
        "beb2a5ec386e5ce6891ebd1c06b913da04354b40"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:38 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:51 2006 -0500"
      },
      "message": "NFSv4: Ensure DELEGRETURN returns attributes\n\n Upon return of a write delegation, the server will almost always bump the\n change attribute. Ensure that we pick up that change so that we don\u0027t\n invalidate our data cache unnecessarily.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "beb2a5ec386e5ce6891ebd1c06b913da04354b40",
      "tree": "370e0065936e5739de638389af6c85ee960a6b28",
      "parents": [
        "969b7f2522c90dfed5d0d2553a91522bda2c3bf3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:37 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:51 2006 -0500"
      },
      "message": "NFSv4: Ensure change attribute returned by GETATTR callback conforms to spec\n\n According to RFC3530 we\u0027re supposed to cache the change attribute\n at the time the client receives a write delegation.\n If the inode is clean, a CB_GETATTR callback by the server to the\n client is supposed to return the cached change attribute.\n If, OTOH, the inode is dirty, the client should bump the cached\n change attribute by 1.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "566dd6064e89b15ff2dec666a421bebf0f98f26c",
      "tree": "45ccdc3084c56557ba5baeae771be7c1e0564ae5",
      "parents": [
        "70b9ecbdb9c5fdc731f8780bffd45d9519020c4a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:35 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:50 2006 -0500"
      },
      "message": "NFS: Make directIO aware of compound pages...\n\n ...and avoid calling set_page_dirty on them\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": "24174119c73983d5217da8f56a12c79a9b57e056",
      "tree": "38904c36afc94c6833cb9296c705e654ff286e43",
      "parents": [
        "40859d7ee64ed6bfad8a4e93f9bb5c1074afadff"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:33 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:50 2006 -0500"
      },
      "message": "NFSv4: Ensure that we return the delegation on the target of a rename too.\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"
    }
  ],
  "next": "ce1a8e6796150233f5098100f70217521dc7c08f"
}
