)]}'
{
  "log": [
    {
      "commit": "b9d9506d944865876e67281a4e4269d823ce5381",
      "tree": "344e12dab9854855fad1388e2aaecbf33eb566c1",
      "parents": [
        "ec535ce154f2eaad3d97f2f20a76a6d8bdac33e5"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Wed Apr 19 13:06:20 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Apr 19 13:06:20 2006 -0400"
      },
      "message": "NFS: nfs_show_stats; for_each_possible_cpu(), not NR_CPUS\n\nConvert a for-loop that explicitly references \"NR_CPUS\" into the\npotentially more efficient for_each_possible_cpu() construct.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "53846a21c1766326bb14ce8ab6e997a0c120675d",
      "tree": "37b04485e29844b4e734479181276a2f4d2447e4",
      "parents": [
        "2e9abdd9bad485970b37cd53a82f92702054984c",
        "1ebbe2b20091d306453a5cf480a87e6cd28ae76f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:18:27 2006 -0800"
      },
      "message": "Merge git://git.linux-nfs.org/pub/linux/nfs-2.6\n\n* git://git.linux-nfs.org/pub/linux/nfs-2.6: (103 commits)\n  SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies\n  SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc\n  LOCKD: Make nlmsvc_traverse_shares return void\n  LOCKD: nlmsvc_traverse_blocks return is unused\n  SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers.\n  NFSv4: Dont list system.nfs4_acl for filesystems that don\u0027t support it.\n  SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum\n  SUNRPC: Ensure rpc_call_async() always calls tk_ops-\u003erpc_release()\n  SUNRPC: Fix memory barriers for req-\u003erq_received\n  NFS: Fix a race in nfs_sync_inode()\n  NFS: Clean up nfs_flush_list()\n  NFS: Fix a race with PG_private and nfs_release_page()\n  NFSv4: Ensure the callback daemon flushes signals\n  SUNRPC: Fix a \u0027Busy inodes\u0027 error in rpc_pipefs\n  NFS, NLM: Allow blocking locks to respect signals\n  NFS: Make nfs_fhget() return appropriate error values\n  NFSv4: Fix an oops in nfs4_fill_super\n  lockd: blocks should hold a reference to the nlm_file\n  NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE\n  NFSv4: Send the delegation stateid for SETATTR calls\n  ...\n"
    },
    {
      "commit": "fffb60f93ce5880aade88e01d7133b52a4879710",
      "tree": "7882f0550af8580c0646306f6d391fe610f7ef8c",
      "parents": [
        "4b6a9316fab51af611dc8671f296734089f6a22a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache format\n\nRewrap the overly long source code lines resulting from the previous\npatch\u0027s addition of the slab cache flag SLAB_MEM_SPREAD.  This patch\ncontains only formatting changes, and no function change.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b6a9316fab51af611dc8671f296734089f6a22a",
      "tree": "078f8f0f01a206af529bef137d5b71515c39053d",
      "parents": [
        "44110fe385af23ca5eee8a6ad4ff55d50339097a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread: slab cache filesystems\n\nMark file system inode and similar slab caches subject to SLAB_MEM_SPREAD\nmemory spreading.\n\nIf a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that\u0027s\nin a cpuset with the \u0027memory_spread_slab\u0027 option enabled goes to allocate\nfrom such a slab cache, the allocations are spread evenly over all the\nmemory nodes (task-\u003emems_allowed) allowed to that task, instead of favoring\nallocation on the node local to the current cpu.\n\nThe following inode and similar caches are marked SLAB_MEM_SPREAD:\n\n    file                               cache\n    \u003d\u003d\u003d\u003d                               \u003d\u003d\u003d\u003d\u003d\n    fs/adfs/super.c                    adfs_inode_cache\n    fs/affs/super.c                    affs_inode_cache\n    fs/befs/linuxvfs.c                 befs_inode_cache\n    fs/bfs/inode.c                     bfs_inode_cache\n    fs/block_dev.c                     bdev_cache\n    fs/cifs/cifsfs.c                   cifs_inode_cache\n    fs/coda/inode.c                    coda_inode_cache\n    fs/dquot.c                         dquot\n    fs/efs/super.c                     efs_inode_cache\n    fs/ext2/super.c                    ext2_inode_cache\n    fs/ext2/xattr.c (fs/mbcache.c)     ext2_xattr\n    fs/ext3/super.c                    ext3_inode_cache\n    fs/ext3/xattr.c (fs/mbcache.c)     ext3_xattr\n    fs/fat/cache.c                     fat_cache\n    fs/fat/inode.c                     fat_inode_cache\n    fs/freevxfs/vxfs_super.c           vxfs_inode\n    fs/hpfs/super.c                    hpfs_inode_cache\n    fs/isofs/inode.c                   isofs_inode_cache\n    fs/jffs/inode-v23.c                jffs_fm\n    fs/jffs2/super.c                   jffs2_i\n    fs/jfs/super.c                     jfs_ip\n    fs/minix/inode.c                   minix_inode_cache\n    fs/ncpfs/inode.c                   ncp_inode_cache\n    fs/nfs/direct.c                    nfs_direct_cache\n    fs/nfs/inode.c                     nfs_inode_cache\n    fs/ntfs/super.c                    ntfs_big_inode_cache_name\n    fs/ntfs/super.c                    ntfs_inode_cache\n    fs/ocfs2/dlm/dlmfs.c               dlmfs_inode_cache\n    fs/ocfs2/super.c                   ocfs2_inode_cache\n    fs/proc/inode.c                    proc_inode_cache\n    fs/qnx4/inode.c                    qnx4_inode_cache\n    fs/reiserfs/super.c                reiser_inode_cache\n    fs/romfs/inode.c                   romfs_inode_cache\n    fs/smbfs/inode.c                   smb_inode_cache\n    fs/sysv/inode.c                    sysv_inode_cache\n    fs/udf/super.c                     udf_inode_cache\n    fs/ufs/super.c                     ufs_inode_cache\n    net/socket.c                       sock_inode_cache\n    net/sunrpc/rpc_pipe.c              rpc_inode_cache\n\nThe choice of which slab caches to so mark was quite simple.  I marked\nthose already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache,\ninode_cache, and buffer_head, which were marked in a previous patch.  Even\nthough SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same\npotentially large file system i/o related slab caches as we need for memory\nspreading.\n\nGiven that the rule now becomes \"wherever you would have used a\nSLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use\nthe SLAB_MEM_SPREAD flag too\", this should be easy enough to maintain.\nFuture file system writers will just copy one of the existing file system\nslab cache setups and tend to get it right without thinking.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e8c96f8c29d89af0c13dc2819a9a00575846ca18",
      "tree": "b90ed0da4803df56a91be5979580e335af2d697c",
      "parents": [
        "b5029622ac86bb441dc5e641226fb1152fca02d7"
      ],
      "author": {
        "name": "Tobias Klauser",
        "email": "tklauser@nuerscht.ch",
        "time": "Fri Mar 24 03:15:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:19 2006 -0800"
      },
      "message": "[PATCH] fs: Use ARRAY_SIZE macro\n\nUse ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove a\nduplicate of ARRAY_SIZE.  Some trailing whitespaces are also deleted.\n\nSigned-off-by: Tobias Klauser \u003ctklauser@nuerscht.ch\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Neil Brown \u003cneilb@cse.unsw.edu.au\u003e\nCc: Chris Mason \u003cmason@suse.com\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nathan Scott \u003cnathans@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b04c997b1120feefa1e6ee8e2902270bc055cd2",
      "tree": "09376b68d11ccce2a1ef53bac25a41a763ad36d0",
      "parents": [
        "6961ec8267d08e21011457b05d2263ec06bdcfe1"
      ],
      "author": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Fri Mar 24 03:15:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:15 2006 -0800"
      },
      "message": "[PATCH] vfs: MS_VERBOSE should be MS_SILENT\n\nThe meaning of MS_VERBOSE is backwards; if the bit is set, it really means,\n\"don\u0027t be verbose\".  This is confusing and counter-intuitive.\n\nIn addition, there is also no way to set the MS_VERBOSE flag in the\nmount(8) program in util-linux, but interesting, it does define options\nwhich would do the right thing if MS_SILENT were defined, which\nunfortunately we do not:\n\n#ifdef MS_SILENT\n  { \"quiet\",    0, 0, MS_SILENT    },   /* be quiet  */\n  { \"loud\",     0, 1, MS_SILENT    },   /* print out messages. */\n#endif\n\nSo the obvious fix is to deprecate the use of MS_VERBOSE and replace it\nwith MS_SILENT.\n\nSigned-off-by: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c42de9dd67250fe984e0e31c9b542d721af6454b",
      "tree": "a4079b25a044f7124837f572e5342dc7614ca75d",
      "parents": [
        "7d46a49f512e8d10b23353781a8ba85edd4fa640"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:51 2006 -0500"
      },
      "message": "NFS: Fix a race in nfs_sync_inode()\n\nKudos to Neil Brown for spotting the problem:\n\n\"in nfs_sync_inode, there is effectively the sequence:\n\n   nfs_wait_on_requests\n   nfs_flush_inode\n   nfs_commit_inode\n\n This seems a bit racy to me as if the only requests are on the\n -\u003ecommit list, and nfs_commit_inode is called separately after\n nfs_wait_on_requests completes, and before nfs_commit_inode start\n (say: by nfs_write_inode) then none of these function will return\n \u003e0, yet there will be some pending request that aren\u0027t waited for.\"\n\nThe solution is to search for requests to wait upon, search for dirty\nrequests, and search for uncommitted requests while holding the\nnfsi-\u003ereq_lock\n\nThe patch also cleans up nfs_sync_inode(), getting rid of the redundant\nFLUSH_WAIT flag. It turns out that we were always setting it.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03f28e3a2059fc466761d872122f30acb7be61ae",
      "tree": "d478e553b79520c34bb3d06e75b59609de2993f4",
      "parents": [
        "01d0ae8beaee75d954900109619b700fe68707d9"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFS: Make nfs_fhget() return appropriate error values\n\nCurrently it returns NULL, which usually gets interpreted as ENOMEM. In\nfact it can mean a host of issues.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "01d0ae8beaee75d954900109619b700fe68707d9",
      "tree": "06180b83f10e0008db9f6bfa6a5fa420bf568ebe",
      "parents": [
        "d9f6eb75d4900782a095b98470decfe98971f920"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:48 2006 -0500"
      },
      "message": "NFSv4: Fix an oops in nfs4_fill_super\n\nThe mount statistics patches introduced a call to nfs_free_iostats that is\nnot only redundant, but actually causes an oops.\n\nAlso fix a memory leak due to the lack of a call to nfs_free_iostats on\nunmount.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ece3a2d18fd7fe1d4972284a8c98c569020093f",
      "tree": "bc71e99d3e4fcc7fc34fea911981f2692377f5b5",
      "parents": [
        "11c556b3d8d481829ab5f9933a25d29b00913b5a"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:22 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:22 2006 -0500"
      },
      "message": "NFS: add RPC I/O statistics to /proc/self/mountstats\n\nNFS client now shows various RPC I/O metrics in /proc/self/mountstats.\n\nTest plan:\nMount/umount while doing \"cat /proc/self/mountstats\", multiple iterations\nof connectathon locking suite.  Test with NFS version 2, 3, and 4.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "67ec9f46b889bfb1ab0a4e307d53929d5f0692bf",
      "tree": "fe9cb38a7ead5bf4894b22bdc10af5d513695781",
      "parents": [
        "006ea73e5fa82915d0ac7a3f15ee7c688433236d"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:15 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:15 2006 -0500"
      },
      "message": "NFS: report how long an NFS file system has been mounted\n\nAdd a field in nfs_server to record a timestamp when a mount succeeds.\nReport the number of seconds the file system has been mounted via\nnfs_show_stats().\n\nTest plan:\nMount an NFS file system, watch the mountstats reports and compare with\nclock time.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "91d5b47023b608227d605d1e916b29dd0215bff7",
      "tree": "31dbb285639ea68db3abc0c4129988f02d50f11a",
      "parents": [
        "d9ef5a8c26aab09762afce43df64736720b4860e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:14 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:14 2006 -0500"
      },
      "message": "NFS: add I/O performance counters\n\nInvoke the byte and event counter macros where we want to count bytes and\nevents.\n\nClean-up: fix a possible NULL dereference in nfs_lock, and simplify\nnfs_file_open.\n\nTest-plan:\nfsx and iozone on UP and SMP systems, with and without pre-emption.  Watch\nfor memory overwrite bugs, and performance loss (significantly more CPU\nrequired per op).\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d9ef5a8c26aab09762afce43df64736720b4860e",
      "tree": "01ec0e16b19d7e418f26f1218113bb0f90b1a2e1",
      "parents": [
        "c8bded96aa8735823e53c95a26177987ebb19a90"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "message": "NFS: introduce mechanism for tracking NFS client metrics\n\nAdd a per-superblock performance counter facility to the NFS client.  This\nfacility mimics the counters available for block devices and for\nnetworking.  Expose these new counters via the new /proc/self/mountstats\ninterface.\n\nThanks to Andrew Morton and Trond Myklebust for their review and comments.\n\nTest plan:\nfsx and iozone on UP and SMP systems, with and without pre-emption.  Watch\nfor memory overwrite bugs, and performance loss (significantly more CPU\nrequired per op).\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "c8bded96aa8735823e53c95a26177987ebb19a90",
      "tree": "95c6c3f5ab5c331d12f986323175615862aff8cb",
      "parents": [
        "7a480e250c7ca9187275d8574ae9e48a6b602cb9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:13 2006 -0500"
      },
      "message": "NFS: clean up some mount options\n\nGet rid of \"lock\" and \"posix\", and spell out \"vers\u003d\".\n\nTest plan:\nNone.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7a480e250c7ca9187275d8574ae9e48a6b602cb9",
      "tree": "0c3744235b3469c10b791fc5cd80b82f9734d37b",
      "parents": [
        "b4629fe2f094b719847f31be1ee5ab38300038b2"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:12 2006 -0500"
      },
      "message": "NFS: show retransmit settings when displaying mount options\n\nSometimes it\u0027s important to know the exact RPC retransmit settings the\nkernel is using for an NFS mount point.  Add this facility to the NFS\nclient\u0027s show_options method.\n\nTest plan:\nSet various retransmit settings via the mount command, and check that the\nsettings are reflected in /proc/mounts.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "bd6475454c774bd9dbe6078d94bbf72b1d3b65f4",
      "tree": "641c38589e2aa02a22db229be7d77c9c342a81cb",
      "parents": [
        "a162a6b804b48c605d1fd35e1861a5d32d00ad3f"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Mon Mar 20 13:44:10 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:10 2006 -0500"
      },
      "message": "NFS: kzalloc conversion in fs/nfs\n\nthis converts fs/nfs to kzalloc() usage.\ncompile tested with make allyesconfig\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "967b9281361481aecf323563886ef972ee88c681",
      "tree": "de7ced8972fdff5011d43a6fe24c2c7ac7cc0cb6",
      "parents": [
        "12de3b35ea549c5819f287508d7afab0bf3ac44d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:09 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:09 2006 -0500"
      },
      "message": "NFSv4: Do not call rpciod_down() before call to destroy_nfsv4_state()\n\nThe reason is that the idmapper cleanup may call flush_workqueue() on\nrpciod_workqueue.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fb374d24f225f38f13dbffb65dd7ec72daf08dba",
      "tree": "bc87f6acbcb7a36ccb69930a6d10deed4fd1514a",
      "parents": [
        "c8d149f3dbd582a101aa7da7bdd6c3316efd11b4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:08 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:08 2006 -0500"
      },
      "message": "NFS: reduce the number of false cache invalidations.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ca62b9c3f7b8679ada4de94d2ab7098c6860c3d7",
      "tree": "c4eb7adef74b2ccdf5b928f698d80f6cdcb6f708",
      "parents": [
        "755c1e20cd2ad56e5c567fa05769eb98a3eef72b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:07 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:07 2006 -0500"
      },
      "message": "NFSv4: Don\u0027t invalidate cached attributes if change attribute is unchanged\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "755c1e20cd2ad56e5c567fa05769eb98a3eef72b",
      "tree": "afc643f89b342011af6a14ee24b999f9106f6c2b",
      "parents": [
        "7bab377fcb495ee2e5a1cd69d235f8d84c76e3af"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:06 2006 -0500"
      },
      "message": "NFS: writes should not clobber utimes() calls\n\nEnsure that we flush out writes in the case when someone calls utimes() in\norder to set the file times.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b92dccf65bab3b6b7deb79ff3321dc256eb0f53b",
      "tree": "78a1436441bdfc1c2cc7928d9fdff50c0579013f",
      "parents": [
        "7705a8792b0fc82fd7d4dd923724606bbfd9fb20"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:03 2006 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Mar 20 13:44:03 2006 -0500"
      },
      "message": "NFS: Fix a busy inodes issue...\n\nThe nfs_open_context may live longer than the file descriptor that spawned\nit, so it needs to carry a reference to the vfsmount. If not, then\ngeneric_shutdown_super() may end up being called before reads and writes\nhave been flushed out.\n\nMake a couple of functions static while we\u0027re at it...\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fc33a7bb9c6dd8f6e4a014976200f8fdabb3a45c",
      "tree": "26f4d676de476075545e58057aa5d8c57618741d",
      "parents": [
        "0d456fa4261f43433287a10fe3ec04a9818fac64"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Jan 09 20:52:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jan 10 08:01:34 2006 -0800"
      },
      "message": "[PATCH] per-mountpoint noatime/nodiratime\n\nTurn noatime and nodiratime into per-mount instead of per-sb flags.\n\nAfter all the preparations this is a rather trivial patch.  The mount code\nneeds to treat the two options as per-mount instead of per-superblock, and\ntouch_atime needs to be changed to check the new MNT_ flags in addition to\nthe MS_ flags that are kept for filesystems that are always\nnoatime/nodiratime but not user settable anymore.  Besides that core code\nonly nfs needed an update because it\u0027s leaving atime updates to the server\nand thus sets the S_NOATIME flag on every inode, but needs to know whether\nit\u0027s a real noatime mount for an getattr optimization.\n\nWhile we\u0027re at it I\u0027ve killed the IS_NOATIME/IS_NODIRATIME macros that were\nonly used by touch_atime.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28fd129827b00e12829d48a5290f46277600619b",
      "tree": "38e50e1b88965fec41ea5b36aa557fb5c2b1ca73",
      "parents": [
        "05eb0b51fb46430050d5873458612f53e0234f2e"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Sun Jan 08 01:02:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:13:47 2006 -0800"
      },
      "message": "[PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait)\n\nThis patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.\n\nSee mm/filemap.c:\n\nAnd changes the filemap_write_and_wait() and filemap_write_and_wait_range().\n\nCurrent filemap_write_and_wait() doesn\u0027t wait if filemap_fdatawrite()\nreturns error.  However, even if filemap_fdatawrite() returned an\nerror, it may have submitted the partially data pages to the device.\n(e.g. in the case of -ENOSPC)\n\n\u003cquotation\u003e\nAndrew Morton writes,\n\nIf filemap_fdatawrite() returns an error, this might be due to some\nI/O problem: dead disk, unplugged cable, etc.  Given the generally\ncrappy quality of the kernel\u0027s handling of such exceptions, there\u0027s a\ngood chance that the filemap_fdatawait() will get stuck in D state\nforever.\n\u003c/quotation\u003e\n\nSo, this patch doesn\u0027t wait if filemap_fdatawrite() returns the -EIO.\n\nTrond, could you please review the nfs part?  Especially I\u0027m not sure,\nnfs must use the \"filemap_fdatawrite(inode-\u003ei_mapping) \u003d\u003d 0\", or not.\n\nAcked-by: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58df095b732529ade8f4051b41d7c29731afecd6",
      "tree": "917819b96bac91e5daea7a31eb6eba66268952d9",
      "parents": [
        "0065db328533c390fbfb0fe0c46bcf9a278fb99e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:57 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:58 2006 -0500"
      },
      "message": "NFSv4: Allow entries in the idmap cache to expire\n\n If someone changes the uid/gid mapping in userland, then we do eventually\n want those changes to be propagated to the kernel. Currently the kernel\n assumes that it may cache entries forever.\n\n Add an expiration time + garbage collector for idmap entries.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f518e35aec984036903c1003e867f833747a9d79",
      "tree": "2697838e0b1e6cc80565204de8b46430ded1246a",
      "parents": [
        "922004120b10dcb0ce04b55014168e8a7a8c1a0e"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Tue Jan 03 09:55:52 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:56 2006 -0500"
      },
      "message": "SUNRPC: get rid of cl_chatty\n\n Clean up: Every ULP that uses the in-kernel RPC client, except the NLM\n client, sets cl_chatty.  There\u0027s no reason why NLM shouldn\u0027t set it, so\n just get rid of cl_chatty and always be verbose.\n\n Test-plan:\n Compile with CONFIG_NFS enabled.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a72b44222d222749d54b3e370d825094352e389f",
      "tree": "d64815b696d207927a4154a2cbc649552708c6f2",
      "parents": [
        "a895b4a198dd06f8353328867e4f6cfd28b63081"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:41 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:52 2006 -0500"
      },
      "message": "NFSv4: Allow user to set the port used by the NFSv4 callback channel\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a895b4a198dd06f8353328867e4f6cfd28b63081",
      "tree": "88a20d173f39170f40e03eede9103f3b0e10b980",
      "parents": [
        "fa178f29c0f8a0dce748181a5351f4a92fd4f455"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:40 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:52 2006 -0500"
      },
      "message": "NFS: Clean up weak cache consistency code\n\n ...and ensure that nfs_update_inode() respects wcc\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "70b9ecbdb9c5fdc731f8780bffd45d9519020c4a",
      "tree": "4678182bd417945cd424a652396510bc53eff8b7",
      "parents": [
        "24174119c73983d5217da8f56a12c79a9b57e056"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:34 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:50 2006 -0500"
      },
      "message": "NFS: Make stat() return updated mtimes after a write()\n\n The SuS states that a call to write() will cause mtime to be updated on\n the file. In order to satisfy that requirement, we need to flush out\n any cached writes in nfs_getattr().\n Speed things up slightly by not committing the writes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "40859d7ee64ed6bfad8a4e93f9bb5c1074afadff",
      "tree": "ed4069423c3d6551035d5b6116f50452cdac4103",
      "parents": [
        "325cfed9ae901320e9234b18c21434b783dbe342"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:09:02 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:49 2006 -0500"
      },
      "message": "NFS: support large reads and writes on the wire\n\n Most NFS server implementations allow up to 64KB reads and writes on the\n wire.  The Solaris NFS server allows up to a megabyte, for instance.\n\n Now the Linux NFS client supports transfer sizes up to 1MB, too.  This will\n help reduce protocol and context switch overhead on read/write intensive NFS\n workloads, and support larger atomic read and write operations on servers\n that support them.\n\n Test-plan:\n Connectathon and iozone on mount point with wsize\u003drsize\u003e32768 over TCP.\n Tests with NFS over UDP to verify the maximum RPC payload size cap.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "325cfed9ae901320e9234b18c21434b783dbe342",
      "tree": "4c842a04bbb20427b2cf6a40a28fdbddf96bbae3",
      "parents": [
        "dc20f803904dbf30f834dcc43c14701dfce32491"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:08:55 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:49 2006 -0500"
      },
      "message": "NFS: make \"inode number mismatch\" message more useful\n\n To help NFS users and server developers, make the \"inode number mismatch\"\n message display more useful information.\n\n Test-plan:\n None.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "dc20f803904dbf30f834dcc43c14701dfce32491",
      "tree": "27d12ce7f8c7455501c93198d194824a346ce2ad",
      "parents": [
        "a911fd9a6046200e439b4af172e8379c0942eec3"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:08:57 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:48 2006 -0500"
      },
      "message": "NFS: get rid of useless kernel log message\n\n nfs_statfs() generates a log message when GETATTR returns an error.  This\n is usually a useless message.  Make it a dprintk.\n\n Test plan:\n None\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6b59a75460eb9527145d7bd55068e5d32bee8a44",
      "tree": "e813365a2bdc3605fbc6580d05189b8878185ef6",
      "parents": [
        "ce1a8e6796150233f5098100f70217521dc7c08f"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Wed Nov 30 18:08:19 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:48 2006 -0500"
      },
      "message": "NFS: Fix error recovery code in fs/nfs/inode.c:__init_nfs()\n\n Red Hat found a problem in the error recovery logic in __init_nfs.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "286d7d6a0cb38d3d4316a1dfea9b0c0fc5a6455b",
      "tree": "844ea8a14db8261a3977ae4d460e227402a4a426",
      "parents": [
        "b4454fe1a7cb76a248d0641c9d68a44a1b8d9a1f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:26 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:47 2006 -0500"
      },
      "message": "NFSv4: Remove requirement for machine creds for the \"setclientid\" operation\n\n Use a cred from the nfs4_client-\u003ecl_state_owners list.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "29884df0d89c1df0dec3449405bc41569bb44800",
      "tree": "b836dc3ece80a901d1b7a9e946bf0d51ec0c8c4f",
      "parents": [
        "b079fa7baa86b47579f3f60f86d03d21c76159b8"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Dec 13 16:13:54 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Mon Dec 19 23:12:09 2005 -0500"
      },
      "message": "NFS: Fix another O_DIRECT race\n\n Ensure we call unmap_mapping_range() and sync dirty pages to disk before\n doing an NFS direct write.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24aa1fe6779eaddb3e0b1b802585dcf6faf9cc44",
      "tree": "dc851edc67202f459262985db0cd451b1d523462",
      "parents": [
        "223db122bfccd463751d8b0c09a638abee03681d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:07 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:07 2005 -0500"
      },
      "message": "NFS: Fix a few further cache consistency regressions\n\n Steve Dickson writes:\n Doing the following:\n 1. On server:\n $ mkdir ~/t\n $ echo Hello \u003e ~/t/tmp\n\n 2. On client, wait for a string to appear in this file:\n $ until grep -q foo t/tmp ; do echo -n . ; sleep 1 ; done\n\n 3. On server, create a *new* file with the same name containing that\n string:\n $ mv ~/t/tmp ~/t/tmp.old; echo foo \u003e ~/t/tmp\n\n will show how the client will never (and I mean never ;-) ) see\n the updated file.\n\n The problem is that we do not update nfsi-\u003ecache_change_attribute when the\n file changes on the server (we only update it when our client makes the\n changes). This again means that functions like nfs_check_verifier() will\n fail to register when the parent directory has changed and should trigger\n a dentry lookup revalidation.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "223db122bfccd463751d8b0c09a638abee03681d",
      "tree": "3fc2e3112f80d94abf0c36586392c7ce43d5a4e8",
      "parents": [
        "b3c6aeb3ce26b286769d2deafec47d218c83dd09"
      ],
      "author": {
        "name": "Steve Dickson",
        "email": "steved@redhat.com",
        "time": "Wed Nov 30 09:25:33 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:03 2005 -0500"
      },
      "message": "NFS: Fix cache consistency regression\n\n Make sure cache_change_attribute is initialized to jiffies\n so when the mtime changes on directory, the directory\n will be refreshed.\n\n Signed-off by: Steve Dickson \u003csteved@redhat.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b37b03b7051493c9f9a6b336c9c0f81334885b7d",
      "tree": "8bb06ddeb952e4399b94bb556f715edb2dbffd34",
      "parents": [
        "ff6040667ad5a21fa1090e02941ecefb94ebe32c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:10:06 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:11:29 2005 -0500"
      },
      "message": "NFS: Fix a spinlock recursion inside nfs_update_inode()\n\n In cases where the server has gone insane, nfs_update_inode() may end\n up calling nfs_invalidate_inode(), which again calls stuff that takes\n the inode-\u003ei_lock that we\u0027re already holding.\n\n In addition, given the sort of things we have in NFS these days that\n need to be cleaned up on inode release, I\u0027m not sure we should ever\n be calling make_bad_inode().\n\n Fix up spinlock recursion, and limit nfs_invalidate_inode() to clearing\n the caches, and marking the inode as being stale.\n\n Thanks to Steve Dickson \u003cSteveD@redhat.com\u003e for spotting this.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f99d49adf527fa6f7a9c42257fa76bca6b8df1e3",
      "tree": "41dddbc336016f9dc9557cdb15300de5e599dac1",
      "parents": [
        "6044ec8882c726e325017bd948aa0cd94ad33abc"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Mon Nov 07 01:01:34 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] kfree cleanup: fs\n\nThis is the fs/ part of the big kfree cleanup patch.\n\nRemove pointless checks for NULL prior to calling kfree() in fs/.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d530838bfa507d67b40d13b00d9cbd7a46a47e78",
      "tree": "f4b2be26c0a7b9ed3233a2be016b7e97427f8705",
      "parents": [
        "4cecb76ff86db46d2823550256c828b6597f418e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:38 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:38 2005 -0500"
      },
      "message": "NFSv4: Fix problem with OPEN_DOWNGRADE\n\n RFC 3530 states that for OPEN_DOWNGRADE \"The share_access and share_deny\n bits specified must be exactly equal to the union of the share_access and\n share_deny bits specified for some subset of the OPENs in effect for\n current openowner on the current file.\n\n Setattr is currently violating the NFSv4 rules for OPEN_DOWNGRADE in that\n it may cause a downgrade from OPEN4_SHARE_ACCESS_BOTH to\n OPEN4_SHARE_ACCESS_WRITE despite the fact that there exists no open file\n with O_WRONLY access mode.\n\n Fix the problem by replacing nfs4_find_state() with a modified version of\n nfs_find_open_context().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d3f8cf489993658702b7e58ff37162246263de53",
      "tree": "268db74a65b90335fb3457357e46e732696cfbb0",
      "parents": [
        "08db2a701bd63d0e36f06a29137bf016a907cf71"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sun Oct 30 17:38:25 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 14:46:47 2005 -0800"
      },
      "message": "[PATCH] NFS: Remove unbalanced spin_unlock() calls from nfs_refresh_inode()\n\nDoh!\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bec273b491bd16351a9cdb8e9a51d30afa7fe9f4",
      "tree": "76013e5926f02d476b47812eb4c49b5dff8264a3",
      "parents": [
        "16c32b71bc53d6f7143702ebb264b4ef20d8f1e5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:45 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:45 2005 -0400"
      },
      "message": "NFS: Allow files that are open for write to invalidate caches\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "decf491f3076190262d4c649bed877650623903a",
      "tree": "8f67577349fe451b0267b68435db1578ec1273a4",
      "parents": [
        "33801147a8fda6b04d7e9afe1d42f1c01d3d6837"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "message": "NFS: Don\u0027t let nfs_end_data_update() clobber attribute update information\n\n Since we almost always call nfs_end_data_update() after we called\n nfs_refresh_inode(), we now end up marking the inode metadata\n as needing revalidation immediately after having updated it.\n\n This patch rearranges things so that we mark the inode as needing\n revalidation _before_ we call nfs_refresh_inode() on those operations\n that need it.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "33801147a8fda6b04d7e9afe1d42f1c01d3d6837",
      "tree": "5311fb4714f0a24b7d7666b04250205025e18d15",
      "parents": [
        "913a70fc170530f7e1ff0693595155457cc6d0ca"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:39 2005 -0400"
      },
      "message": "NFS: Optimise inode attribute cache updates\n\n Allow nfs_refresh_inode() also to update attributes on the inode if the\n RPC call was sent after the last call to nfs_update_inode().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "913a70fc170530f7e1ff0693595155457cc6d0ca",
      "tree": "1f3d5db26462d02ecca383794b3061a5eae8d9cc",
      "parents": [
        "0e574af1be5f569a5d7f2800333b0bfb358a5e34"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:38 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:38 2005 -0400"
      },
      "message": "NFS: Convert cache_change_attribute into a jiffy-based value\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "642ac54923e0291ae2c8e42edde18d8c9c0a3c84",
      "tree": "3dbcbbff050551854b29e020f8453306053ae9bb",
      "parents": [
        "cae7a073a4c5484cc5713eab606bf54b46724ab3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "message": "NFSv4: Return delegations in case we\u0027re changing ACLs\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cae7a073a4c5484cc5713eab606bf54b46724ab3",
      "tree": "e5cdcf0376da5b04bca9bbbf8f226abe13f33275",
      "parents": [
        "cdce5d6b94b6182f6d8a5b7b52923933e98cbc92"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:19 2005 -0700"
      },
      "message": "NFSv4: Return delegation upon rename or removal of file.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cff6bf970965c98c62007fc8a36527fd147fe233",
      "tree": "2791f2208b54ade86625af416ff5342f11282f0c",
      "parents": [
        "6cd7525a00f3b926e8bd2e402954ed3e09a8e924",
        "39ca371c45b04cd50d0974030ae051906fc516b6"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 13:50:52 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 13:50:52 2005 -0700"
      },
      "message": "Merge /home/trondmy/scm/kernel/git/torvalds/linux-2.6\n"
    },
    {
      "commit": "6ce969171d5187f7621be68c0ebbc7fb02ec53f1",
      "tree": "9784933075d154085fec4fe96be7dc8006202fbb",
      "parents": [
        "b3c52da33ce95747b1bff86cce716d4f1397f14a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Mon Oct 17 06:03:23 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 14:47:16 2005 -0700"
      },
      "message": "[PATCH] NFS: Fix Oopsable/unnecessary i_count manipulations in nfs_wait_on_inode()\n\nOopsable since nfs_wait_on_inode() can get called as part of iput_final().\n\nUnnecessary since the caller had better be damned sure that the inode won\u0027t\ndisappear from underneath it anyway.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3c52da33ce95747b1bff86cce716d4f1397f14a",
      "tree": "7958a929e5b9486bf0b5358776078c1bc71faf88",
      "parents": [
        "13b58ee51802a45d2b8853ffe0003d9fa768195c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Mon Oct 17 06:02:00 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 14:47:16 2005 -0700"
      },
      "message": "[PATCH] NFS: Fix cache consistency races\n\nIf the data cache has been marked as potentially invalid by nfs_refresh_inode,\nwe should invalidate it rather than assume that changes are due to our own\nactivity.\n\nAlso ensure that we always start with a valid cache before declaring it\nto be protected by a delegation.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3063d8a16643190f9e12e9c7e9f1ca56f7e7934e",
      "tree": "e44b1e23f7a7c642d9ef5040a2bc0b753e0fad99",
      "parents": [
        "278c995c8a153bb2a9bc427e931cfb9c8034c9d7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Aug 25 16:25:57 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:59 2005 -0400"
      },
      "message": "NFS: Make /proc/mounts display the protocol used by NFSv4\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "03bf4b707eee06706c9db343dd5c905b7ee47ed2",
      "tree": "54f89b578758e2bf2650b647ae1c7100c882a757",
      "parents": [
        "3167e12c0c424f3c323944701615343022d86418"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@netapp.com",
        "time": "Thu Aug 25 16:25:55 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:53 2005 -0400"
      },
      "message": "[PATCH] RPC: parametrize various transport connect timeouts\n\n Each transport implementation can now set unique bind, connect,\n reestablishment, and idle timeout values.  These are variables,\n allowing the values to be modified dynamically.  This permits\n exponential backoff of any of these values, for instance.\n\n As an example, we implement exponential backoff for the connection\n reestablishment timeout.\n\n Test-plan:\n Destructive testing (unplugging the network temporarily).  Connectathon\n with UDP and TCP.\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "eab5c084b858fd95a873fc2b97de9a9ad937b4ed",
      "tree": "6ba8287570ecc83fed1512bd4901df979221c2ab",
      "parents": [
        "da35187801732397a7e05fb9e77f3700cc35f5db"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 11 16:25:14 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Sep 23 12:38:06 2005 -0400"
      },
      "message": "[PATCH] NFS: use a constant value for TCP retransmit timeouts\n\n Implement a best practice: don\u0027t use exponential backoff when computing\n retransmit timeout values on TCP connections, but simply retransmit\n at regular intervals.\n\n This also fixes a bug introduced when xprt_reset_majortimeo() was added.\n\n Test-plan:\n Enable RPC debugging and watch timeout behavior on a NFS/TCP mount.\n\n Version: Thu, 11 Aug 2005 16:02:19 -0400\n\n Signed-off-by: Chuck Lever \u003ccel@netapp.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fef266580e5cf897a1b63528fc6b1185e2d6bb87",
      "tree": "a432a35914b8a74f0c8c73ca57257c7e609365d3",
      "parents": [
        "e85b565233236a2a833adea73fb2f0e0f8fa2a61"
      ],
      "author": {
        "name": "Mark Fasheh",
        "email": "mark.fasheh@oracle.com",
        "time": "Fri Sep 09 13:01:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 09 13:57:27 2005 -0700"
      },
      "message": "[PATCH] update filesystems for new delete_inode behavior\n\nUpdate the file systems in fs/ implementing a delete_inode() callback to\ncall truncate_inode_pages().  One implementation note: In developing this\npatch I put the calls to truncate_inode_pages() at the very top of those\nfilesystems delete_inode() callbacks in order to retain the previous\nbehavior.  I\u0027m guessing that some of those could probably be optimized.\n\nSigned-off-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc59250c6ebed099a9bc0a11298e2281dd896657",
      "tree": "80c294437c0868d90abfa617d873370e6dbe6565",
      "parents": [
        "412d582ec1dd59aab2353f8cb7e74f2c79cd20b9"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 18 11:24:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 18 12:53:57 2005 -0700"
      },
      "message": "[PATCH] NFS: Introduce the use of inode-\u003ei_lock to protect fields in nfsi\n\nDown the road we want to eliminate the use of the global kernel lock entirely\nfrom the NFS client.  To do this, we need to protect the fields in the\nnfs_inode structure adequately.  Start by serializing updates to the\n\"cache_validity\" field.\n\nNote this change addresses an SMP hang found by njw@osdl.org, where processes\ndeadlock because nfs_end_data_update and nfs_revalidate_mapping update the\n\"cache_validity\" field without proper serialization.\n\nTest plan:\n Millions of fsx ops on SMP clients.  Run Nick Wilson\u0027s breaknfs program on\n large SMP clients.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "412d582ec1dd59aab2353f8cb7e74f2c79cd20b9",
      "tree": "9088c5e29cbd4b33e907a7b5f9a950dd0dce36c1",
      "parents": [
        "5529680981807b44abf3be30fb6d612ff04f68ff"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 18 11:24:11 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 18 12:53:56 2005 -0700"
      },
      "message": "[PATCH] NFS: use atomic bitops to manipulate flags in nfsi-\u003eflags\n\nIntroduce atomic bitops to manipulate the bits in the nfs_inode structure\u0027s\n\"flags\" field.\n\nUsing bitops means we can use a generic wait_on_bit call instead of an ad hoc\nlocking scheme in fs/nfs/inode.c, so we can remove the \"nfs_i_wait\" field from\nnfs_inode at the same time.\n\nThe other new flags field will continue to use bitmask and logic AND and OR.\nThis permits several flags to be set at the same time efficiently.  The\nfollowing patch adds a spin lock to protect these flags, and this spin lock\nwill later cover other fields in the nfs_inode structure, amortizing the cost\nof using this type of serialization.\n\nTest plan:\n Millions of fsx ops on SMP clients.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5529680981807b44abf3be30fb6d612ff04f68ff",
      "tree": "57da4e9135c0a85c1f8c6bc797250c0209420b51",
      "parents": [
        "3c7bf1eaee1255315fc7c2c4c300295e556ef768"
      ],
      "author": {
        "name": "Chuck Lever",
        "email": "cel@citi.umich.edu",
        "time": "Thu Aug 18 11:24:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Aug 18 12:53:56 2005 -0700"
      },
      "message": "[PATCH] NFS: split nfsi-\u003eflags into two fields\n\nCertain bits in nfsi-\u003eflags can be manipulated with atomic bitops, and some\nare better manipulated via logical bitmask operations.\n\nThis patch splits the flags field into two.  The next patch introduces atomic\nbitops for one of the fields.\n\nTest plan:\n Millions of fsx ops on SMP clients.\n\nSigned-off-by: Chuck Lever \u003ccel@netapp.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65e4308d2500e7daf60c3dccc202c61ffb066c63",
      "tree": "76a2e00004f645d09b2e59b485fb2aea0af45234",
      "parents": [
        "367ae3cd74bdc2ad32d71293427fec570b14ddcd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Aug 16 11:49:44 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Aug 16 09:30:58 2005 -0700"
      },
      "message": "[PATCH] NFS: Ensure we always update inode-\u003ei_mode when doing O_EXCL creates\n\nWhen the client performs an exclusive create and opens the file for writing,\na Netapp filer will first create the file using the mode 01777. It does this\nsince an NFSv3/v4 exclusive create cannot immediately set the mode bits.\nThe 01777 mode then gets put into the inode-\u003ei_mode. After the file creation\nis successful, we then do a setattr to change the mode to the correct value\n(as per the NFS spec).\n\nThe problem is that nfs_refresh_inode() no longer updates inode-\u003ei_mode, so\nthe latter retains the 01777 mode. A bit later, the VFS notices this, and calls\nremove_suid(). This of course now resets the file mode to inode-\u003ei_mode \u0026 0777.\nHey presto, the file mode on the server is now magically changed to 0777. Duh...\n\nFixes http://bugzilla.linux-nfs.org/show_bug.cgi?id\u003d32\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3da28eb1c6545fe73263a24eba0996217490e1eb",
      "tree": "944ccf9418c75a5c0b121f2c554c92dc93de1efa",
      "parents": [
        "c6a556b88adfacd2af90be84357c8165d716c27d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:31 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:39 2005 -0400"
      },
      "message": "[PATCH] NFS: Replace nfs_page insertion sort with a radix sort\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe51beecc55d0b0dce289e4758e7c529a642f63e",
      "tree": "9790d77fafbb52b9237ecd65c57002e87f914e12",
      "parents": [
        "7d52e86274e09fce8ac8f963e3605a84d0a305a7"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:30 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:37 2005 -0400"
      },
      "message": "[PATCH] NFS: Ensure that fstat() always returns the correct mtime\n\n Even if the file is open for writes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7d52e86274e09fce8ac8f963e3605a84d0a305a7",
      "tree": "b9ecc05bbdff94aa344f39b53756bfddbd9db123",
      "parents": [
        "951a143b3fcf15cfa9d38250b7462f821db241db"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:30 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:37 2005 -0400"
      },
      "message": "[PATCH] NFS: Cleanup of caching code, and slight optimization of writes.\n\n Unless we\u0027re doing O_APPEND writes, we really don\u0027t care about revalidating\n the file length. Just make sure that we catch any page cache invalidations.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "951a143b3fcf15cfa9d38250b7462f821db241db",
      "tree": "6e4ea13c5f48cc3e1ac1c8649dd0f9f20c502e20",
      "parents": [
        "08e9eac42edab63bce14b5c8419771f3c92aa3f4"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:30 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:36 2005 -0400"
      },
      "message": "[PATCH] NFS: Fix the file size revalidation\n\n Instead of looking at whether or not the file is open for writes before\n we accept to update the length using the server value, we should rather\n be looking at whether or not we are currently caching any writes.\n\n Failure to do so means in particular that we\u0027re not updating the file\n length correctly after obtaining a POSIX or BSD lock.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "f0dd2136da6d2070e12bfa6d199b136318e666c7",
      "tree": "a261d4b4d9e29dbce104cf9515a0a209cff387cf",
      "parents": [
        "00a926422765064cb28e218d4837411c88bf6a3e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:29 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:34 2005 -0400"
      },
      "message": "[PATCH] NFS: Clean up readdir changes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "00a926422765064cb28e218d4837411c88bf6a3e",
      "tree": "1e9ad635821c7b037014307d1a2657dc56b17acf",
      "parents": [
        "ae3884621bf5b4caff7785b9a417f262202965b2"
      ],
      "author": {
        "name": "Olivier Galibert",
        "email": "galibert@pobox.com",
        "time": "Wed Jun 22 17:16:29 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:33 2005 -0400"
      },
      "message": "[PATCH] NFS: Hide NFS server-generated readdir cookies from userland\n\n NFSv3 currently returns the unsigned 64-bit cookie directly to\n userspace. The following patch causes the kernel to generate\n loff_t offsets for the benefit of userland.\n The current server-generated READDIR cookie is cached in the\n nfs_open_context instead of in filp-\u003ef_pos, so we still end up work\n correctly under directory insertions/deletion.\n\n Signed-off-by: Olivier Galibert \u003cgalibert@pobox.com\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "458818ed76d3f495f9f32373c936456c9427f759",
      "tree": "cf280ec14954d61fea2f171eaa198196fe5a1e56",
      "parents": [
        "5c6a9f7d92291c832d47e792ed1fafa44acb066e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:27 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:26 2005 -0400"
      },
      "message": "[PATCH] NFS: Fix up v3 ACL caching code\n\n Initialize the inode cache values correctly.\n Clean up __nfs3_forget_cached_acls()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "055ffbea0596942579b0dae71d5dab78de8135f6",
      "tree": "4799088989e9923c45089cab905f40247af52a45",
      "parents": [
        "b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Wed Jun 22 17:16:27 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:24 2005 -0400"
      },
      "message": "[PATCH] NFS: Fix handling of the umask when an NFSv3 default acl is present.\n\n NFSv3 has no concept of a umask on the server side: The client applies\n the umask locally, and sends the effective permissions to the server.\n This behavior is wrong when files are created in a directory that has a\n default ACL.  In this case, the umask is supposed to be ignored, and\n only the default ACL determines the file\u0027s effective permissions.\n\n Usually its the server\u0027s task to conditionally apply the umask.  But\n since the server knows nothing about the umask, we have to do it on the\n client side.  This patch tries to fetch the parent directory\u0027s default\n ACL before creating a new file, computes the appropriate create mode to\n send to the server, and finally sets the new file\u0027s access and default\n acl appropriately.\n\n Many thanks to Buck Huppmann \u003cbuchk@pobox.com\u003e for sending the initial\n version of this patch, as well as for arguing why we need this change.\n\n Signed-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\n Acked-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7fa0554cf1ba6d6895cd0a5b02989a26e0bc704",
      "tree": "83eb405f3ff78c17695999df38c99484e3aee01f",
      "parents": [
        "a257cdd0e2179630d3201c32ba14d7fcb3c3a055"
      ],
      "author": {
        "name": "Andreas Gruenbacher",
        "email": "agruen@suse.de",
        "time": "Wed Jun 22 17:16:27 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:24 2005 -0400"
      },
      "message": "[PATCH] NFS: Add support for NFSv3 ACLs\n\n This adds acl support fo nfs clients via the NFSACL protocol extension, by\n implementing the getxattr, listxattr, setxattr, and removexattr iops for the\n system.posix_acl_access and system.posix_acl_default attributes.  This patch\n implements a dumb version that uses no caching (and thus adds some overhead).\n (Another patch in this patchset adds caching as well.)\n\n Signed-off-by: Andreas Gruenbacher \u003cagruen@suse.de\u003e\n Acked-by: Olaf Kirch \u003cokir@suse.de\u003e\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6a19275ada9137435da58990c8f8d3f58e170bf1",
      "tree": "927f8aa96c9b558a0bed5355dde66df9c0ec8554",
      "parents": [
        "438b6fdebf2a2e8573e7290bc176feb4d4475f43"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:23 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:16 2005 -0400"
      },
      "message": "[PATCH] RPC: [PATCH] improve rpcauthauth_create error returns\n\n Currently we return -ENOMEM for every single failure to create a new auth.\n This is actually accurate for auth_null and auth_unix, but for auth_gss it\u0027s a\n bit confusing.\n\n Allow rpcauth_create (and the -\u003ecreate methods) to return errors.  With this\n patch, the user may sometimes see an EINVAL instead.  Whee.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e50a1c2e1f816c81eed6a589019052cb44189267",
      "tree": "e59dd290e136bd0eb5fc56d325bf34f5ca1efdfb",
      "parents": [
        "4b580ee3dc00f9828a9a7aad2724f448fdc94075"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:23 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:15 2005 -0400"
      },
      "message": "[PATCH] NFSv4: client-side caching NFSv4 ACLs\n\n Add nfs4_acl field to the nfs_inode, and use it to cache acls.  Only cache\n acls of size up to a page.  Also prepare for up to a page of acl data even\n when the user doesn\u0027t pass in a buffer, as when they want to get the acl\n length to decide what size buffer to allocate.\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ada70d9425bcc5e376fef8591e4e76e204c0834c",
      "tree": "0bf6c369540c467e96555118155cae191fbf71e6",
      "parents": [
        "92cfc62cb8412c9563860b1bf70cd4701f03092e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:22 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:09 2005 -0400"
      },
      "message": "[PATCH] NFS: Add hooks to allow common NFS attribute code to clear cached acls\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "92cfc62cb8412c9563860b1bf70cd4701f03092e",
      "tree": "13b75734522c0cbf6d1ba0663d07ecc13a4f464c",
      "parents": [
        "464a98bd70bae8c559cfc82af799faf44824ce64"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@citi.umich.edu",
        "time": "Wed Jun 22 17:16:22 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:09 2005 -0400"
      },
      "message": "[PATCH] NFS: Allow NFS versions to support different sets of inode operations.\n\n ACL support will require supporting additional inode operations in v4\n (getxattr, setxattr, listxattr).  This patch allows different protocol versions\n to support different inode operations by adding a file_inode_ops to the\n nfs_rpc_ops (to match the existing dir_inode_ops).\n\n Signed-off-by: J. Bruce Fields \u003cbfields@citi.umich.edu\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "464a98bd70bae8c559cfc82af799faf44824ce64",
      "tree": "06013db965c1450bfa800bd9c7e8eca35d320f77",
      "parents": [
        "96651ab341cde0fee940ec837f323d711cbfa7d5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:21 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:08 2005 -0400"
      },
      "message": "[PATCH] NFS: cleanup: shrink struct nfs_open_context\n\n Remove the wait queue, and replace the functions that depended on it\n with wait_on_bit().\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ce79717ce32a9f88c1ddce4b9658556cb59d37a",
      "tree": "7f0c5e4bdbc2ee15b8e902b951d1be200b35411f",
      "parents": [
        "9085bbcb76421a90bea28f4d3d03fa9977319c49"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:21 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:06 2005 -0400"
      },
      "message": "[PATCH] NFS: Header file cleanup...\n\n - Move NFSv4 state definitions into a private header file.\n - Clean up gunk in nfs_fs.h\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9085bbcb76421a90bea28f4d3d03fa9977319c49",
      "tree": "d0f6fc7f9d2524dbad8ca58b2ce7c47fc00afe51",
      "parents": [
        "5ee0ed7d3ab620a764740fb018f469d45f561931"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:20 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:04 2005 -0400"
      },
      "message": "[PATCH] NFS: Kill annoying mount version mismatch printks\n\n Ensure that we fix up the missing fields in the nfs_mount_data with\n sane defaults for older versions of mount, and return errors in the\n cases where we cannot.\n\n Convert a bunch of annoying warnings into dprintks()\n\n Return -EPROTONOSUPPORT rather than EIO if mount() tries to set NFSv3\n without it actually being compiled in.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "5b616f5d596c0b056129f8aeafbc08409b3cd050",
      "tree": "bdbd2eb5bd1f8a26c7287e21be25ec50db075459",
      "parents": [
        "334ccfd545bba9690515f2c5c167d5adb161989b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:20 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:03 2005 -0400"
      },
      "message": "[PATCH] RPC: Make rpc_create_client() destroy the transport on failure.\n\n This saves us a couple of lines of cleanup code for each call.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "75c96f85845a6707b0f9916cb263cb3584f7d48f",
      "tree": "45a64d1c9bb71d7093db3a11e0f21465c2e3dec6",
      "parents": [
        "5e198d94dd0c3ec7f6138229e2e412c2c6268c38"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Thu May 05 16:16:09 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Thu May 05 16:36:47 2005 -0700"
      },
      "message": "[PATCH] make some things static\n\nThis patch makes some needlessly global identifiers static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nAcked-by: Arjan van de Ven \u003carjanv@infradead.org\u003e\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": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
