)]}'
{
  "log": [
    {
      "commit": "f7b422b17ee5ee4920e8ae24a6ad04bf3481ce72",
      "tree": "4ae8372762efc092ceb4f884b57cad1efe6594de",
      "parents": [
        "4e5ccf60c5aa79d325c123f47d288a068166f389"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:33 2006 -0400"
      },
      "message": "NFS: Split fs/nfs/inode.c\n\nAs fs/nfs/inode.c is rather large, heterogenous and unwieldy, the attached\npatch splits it up into a number of files:\n\n (*) fs/nfs/inode.c\n\n     Strictly inode specific functions.\n\n (*) fs/nfs/super.c\n\n     Superblock management functions for NFS and NFS4, normal access, clones\n     and referrals.  The NFS4 superblock functions _could_ move out into a\n     separate conditionally compiled file, but it\u0027s probably not worth it as\n     there\u0027re so many common bits.\n\n (*) fs/nfs/namespace.c\n\n     Some namespace-specific functions have been moved here.\n\n (*) fs/nfs/nfs4namespace.c\n\n     NFS4-specific namespace functions (this could be merged into the previous\n     file).  This file is conditionally compiled.\n\n (*) fs/nfs/internal.h\n\n     Inter-file declarations, plus a few simple utility functions moved from\n     fs/nfs/inode.c.\n\n     Additionally, all the in-.c-file externs have been moved here, and those\n     files they were moved from now includes this file.\n\nFor the most part, the functions have not been changed, only some multiplexor\nfunctions have changed significantly.\n\nI\u0027ve also:\n\n (*) Added some extra banner comments above some functions.\n\n (*) Rearranged the function order within the files to be more logical and\n     better grouped (IMO), though someone may prefer a different order.\n\n (*) Reduced the number of #ifdefs in .c files.\n\n (*) Added missing __init and __exit directives.\n\nSigned-Off-By: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6b97fd3da1eab2cc490cfe884c7d4956522eaf8b",
      "tree": "055f5f603101a15f783ae52081e4714ddc3edc96",
      "parents": [
        "9cdb3883c38f883436a84c2353a4cf964ff890a2"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:29 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:29 2006 -0400"
      },
      "message": "NFSv4: Follow a referral\n\nRespond to a moved error on NFS lookup by setting up the referral.\nNote: We don\u0027t actually follow the referral during lookup/getattr, but\nlater when we detect fsid mismatch in inode revalidation (similar to the\nprocessing done for cloning submounts). Referrals will have fake attributes\nuntil they are actually followed or traversed.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "830b8e33fe1900b87c8eb7ec5c646117a9f298d6",
      "tree": "8e4aa4c7ecd0485a288254433edf76305852c846",
      "parents": [
        "361e624f6d8bfbeac53769603d995d47535cfd46"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:25 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:25 2006 -0400"
      },
      "message": "NFSv4: Define an fs_locations bitmap\n\nThis is (similar to getattr bitmap) but includes fs_locations and\nmounted_on_fileid attributes. Use this bitmap for encoding in fs_locations\nrequests.\nNote: We can probably do better by requesting locations as part of fsinfo\nitself.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "361e624f6d8bfbeac53769603d995d47535cfd46",
      "tree": "9cf400058ff4c4960a4e573b3753baff41cb5cf0",
      "parents": [
        "99baf625d3b9b8944920acc7c2d06079a37458c5"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:24 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:24 2006 -0400"
      },
      "message": "NFSv4: GETATTR attributes on referral\n\nPer referral draft, only fs_locations, fsid, and mounted_on_fileid can be\nrequested in a GETATTR on referrals.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "7aaa0b3bd4d215d9ce4d62b6c2043a63ba650f93",
      "tree": "122b502bc56a00dcb60d2de211e5ea6eeac9e028",
      "parents": [
        "683b57b435326eb512c7305892683b6205669448"
      ],
      "author": {
        "name": "Manoj Naik",
        "email": "manoj@almaden.ibm.com",
        "time": "Fri Jun 09 09:34:23 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:23 2006 -0400"
      },
      "message": "NFSv4: convert fs-locations-components to conform to RFC3530\n\nUse component4-style formats for decoding list of servers and pathnames in\nfs_locations.\n\nSigned-off-by: Manoj Naik \u003cmanoj@almaden.ibm.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "683b57b435326eb512c7305892683b6205669448",
      "tree": "ca1e526ab5b27993c0c143c37bb31e18889eeb61",
      "parents": [
        "8b23ea7bedb8b45a5bb56745fa3ff11018acf04e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:22 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:22 2006 -0400"
      },
      "message": "NFSv4: Implement the fs_locations function call\n\nNFSv4 allows for the fact that filesystems may be replicated across\nseveral servers or that they may be migrated to a backup server in case of\nfailure of the primary server.\nfs_locations is an NFSv4 operation for retrieving information about the\nlocation of migrated and/or replicated filesystems.\n\nBased on an initial implementation by Jiaying Zhang \u003cjiayingz@citi.umich.edu\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "55a975937d40cac582e981ddc8ed783b3dcc043c",
      "tree": "13507eaebdab5e9c9dd615fe373ec6c0ddcbade4",
      "parents": [
        "8b4bdcf8995dd92b23d2ec22b32aee8fbbb50e1c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:19 2006 -0400"
      },
      "message": "NFS: Ensure the client submounts, when it crosses a server mountpoint.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "38478b24e37587f1c4fedf8ac070ca54f052ed28",
      "tree": "da4d900a8bfe27f1243fb0e037b51fae2a7e3256",
      "parents": [
        "f1bb0b92ba2cdfffe6e437f7a7da53138cf08d52"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:57 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:09 2006 -0400"
      },
      "message": "NFS: More page cache revalidation fixups\n\nWhenever the directory changes, we want to make sure that we always\ninvalidate its page cache. Fix up update_changeattr() and\nnfs_mark_for_revalidate() so that they do so.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "73a3d07c1082145a3b78407bb5252df290470c4c",
      "tree": "58ae6256401e19750f2d5f916c1ca5636a14905b",
      "parents": [
        "9d1e9232223a7f065be7f956a7b749a4cbbbe16d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu May 25 01:40:47 2006 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jun 09 09:34:04 2006 -0400"
      },
      "message": "NFS: Clean up inode metadata updates\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "b4454fe1a7cb76a248d0641c9d68a44a1b8d9a1f",
      "tree": "50ddc265e9700b1924e45ffce0f4583ba1013177",
      "parents": [
        "58d9714a44a79bba9b414da3ffbf3c753dc5915f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:25 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 \"renew\" operation\n\n In RFC3530, the RENEW operation is allowed to use either\n\n the same principal, RPC security flavour and (if RPCSEC_GSS), the same\n  mechanism and service that was used for SETCLIENTID_CONFIRM\n\n OR\n\n Any principal, RPC security flavour and service combination that\n currently has an OPEN file on the server.\n\n Choose the latter since that doesn\u0027t require us to keep credentials for\n the same principal for the entire duration of the mount.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "58d9714a44a79bba9b414da3ffbf3c753dc5915f",
      "tree": "623141f0a40a470c0c81c2edcd8c45c6b0daf4f9",
      "parents": [
        "5043e900f5404c01864fbeb5826aa7de3981bbc1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:24 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:46 2006 -0500"
      },
      "message": "NFSv4: Send RENEW requests to the server only when we\u0027re holding state\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "433fbe4c8837e3cc2ba6a6374edf28737d01a2e9",
      "tree": "9448a58eafca388efaab5d3653c818fe60a4450d",
      "parents": [
        "26e976a884be9aa08f8ff906372f25f68df0d948"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:22 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:45 2006 -0500"
      },
      "message": "NFSv4: State recovery cleanup\n\n Use wait_on_bit() when waiting for state recovery to complete.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "26e976a884be9aa08f8ff906372f25f68df0d948",
      "tree": "ef675345b5c6126dca86699e077b75a375b504b9",
      "parents": [
        "2bd615797ef32ec06ef0ee44198a7aecc21ffd8c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:21 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:45 2006 -0500"
      },
      "message": "NFSv4: OPEN/LOCK/LOCKU/CLOSE will automatically renew the NFSv4 lease\n\n Cut down on the number of unnecessary RENEW requests on the wire.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "fe650407a86823bcafbfbee96c7bc6a1b5cd1c76",
      "tree": "38e899d40fabba538bb558c0dcc3d38f830beadb",
      "parents": [
        "a5d16a4d090bd2af86e648ed9bb205903fcf1e86"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:18 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:44 2006 -0500"
      },
      "message": "NFSv4: Make DELEGRETURN an interruptible operation.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "a5d16a4d090bd2af86e648ed9bb205903fcf1e86",
      "tree": "9fd615f3991e50d07583010d9703a3d1aced8419",
      "parents": [
        "911d1aaf26fc4d771174d98fcab710a44e2a5fa0"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:17 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:44 2006 -0500"
      },
      "message": "NFSv4: Convert LOCK rpc call into an asynchronous RPC call\n\n In order to allow users to interrupt/cancel it.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "911d1aaf26fc4d771174d98fcab710a44e2a5fa0",
      "tree": "e16df0f68093d2dc0abd5f55c2d46ff7705fffb8",
      "parents": [
        "864472e9b8fa76ffaad17dfcb84d79e16df6828c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:16 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:44 2006 -0500"
      },
      "message": "NFSv4: locking XDR cleanup\n\n Get rid of some unnecessary intermediate structures\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "864472e9b8fa76ffaad17dfcb84d79e16df6828c",
      "tree": "1cc5c4624c36be0b9aebdabae30d1a5385e04dee",
      "parents": [
        "e761692381f294ea079d2e869fcd7c0afc79e394"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:15 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:43 2006 -0500"
      },
      "message": "NFSv4: Make open recovery track O_RDWR, O_RDONLY and O_WRONLY correctly\n\n When recovering from a delegation recall or a network partition, we need\n to replay open(O_RDWR), open(O_RDONLY) and open(O_WRONLY) separately.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e761692381f294ea079d2e869fcd7c0afc79e394",
      "tree": "34ebc00c001cddc94866936c460547d311e5dabb",
      "parents": [
        "cdd4e68b5f0ed12c64b3e2be83655d2a47588a74"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:13 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:43 2006 -0500"
      },
      "message": "NFSv4: Make nfs4_state track O_RDWR, O_RDONLY and O_WRONLY separately\n\n A closer reading of RFC3530 reveals that OPEN_DOWNGRADE must always\n specify a access modes that have been the argument of a previous OPEN\n operation.\n IOW: doing OPEN(O_RDWR) and then OPEN_DOWNGRADE(O_WRONLY) is forbidden\n unless the user called OPEN(O_WRONLY)\n\n In order to fix that, we really need to track the three possible open\n states separately.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cdd4e68b5f0ed12c64b3e2be83655d2a47588a74",
      "tree": "c31565c36e0550655207d2edcabaa6ea1f3217f7",
      "parents": [
        "24ac23ab88df5b21b5b2df8cde748bf99b289099"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:12 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:42 2006 -0500"
      },
      "message": "NFSv4: Make open_confirm() asynchronous too\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "24ac23ab88df5b21b5b2df8cde748bf99b289099",
      "tree": "e5e599fc55fc1744284077b320f3541a3658b958",
      "parents": [
        "e60859ac0e50f660d23b72e42e05f58757dcfeff"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:11 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:42 2006 -0500"
      },
      "message": "NFSv4: Convert open() into an asynchronous RPC call\n\n OPEN is a stateful operation, so we must ensure that it always\n completes. In order to allow users to interrupt the operation,\n we need to make the RPC call asynchronous, and then wait on\n completion (or cancel).\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e56e0b78eb1097a8e06512b9ed4be94d7538e7ac",
      "tree": "fe2b82993dd62323f9891f28bdb79c7cb2b01442",
      "parents": [
        "06f814a3ad0ddfe19e6e4f44e3da5d490547faf3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:08 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:41 2006 -0500"
      },
      "message": "NFSv4: Allocate OPEN call RPC arguments using kmalloc()\n\n Cleanup in preparation for making OPEN calls interruptible by the user.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "06f814a3ad0ddfe19e6e4f44e3da5d490547faf3",
      "tree": "576f5f3c884b10b3b6349523af70a113f75d6634",
      "parents": [
        "44c288732fdbd7e38460d156a40d29590bf93bce"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:07 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:40 2006 -0500"
      },
      "message": "NFSv4: Make locku use the new RPC \"wait on completion\" interface.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4ce70ada1ff1d0b80916ec9ec5764ce44a50a54f",
      "tree": "9bc9ffc691679a4423a6b8724a27607c9ad7ea2c",
      "parents": [
        "963d8fe53339128ee46a7701f2e36305f0ccff8c"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:05 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:40 2006 -0500"
      },
      "message": "SUNRPC: Further cleanups\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "963d8fe53339128ee46a7701f2e36305f0ccff8c",
      "tree": "426736c70a8e05cb1d945d5c7f44ea6475edd113",
      "parents": [
        "abbcf28f23d53e8ec56a91f3528743913fa2694a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Jan 03 09:55:04 2006 +0100"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Jan 06 14:58:39 2006 -0500"
      },
      "message": "RPC: Clean up RPC task structure\n\n Shrink the RPC task structure. Instead of storing separate pointers\n for task-\u003etk_exit and task-\u003etk_release, put them in a structure.\n\n Also pass the user data pointer as a parameter instead of passing it via\n task-\u003etk_calldata. This enables us to nest callbacks.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3b6efee9231e12fce09c94930bfc59f66f18d662",
      "tree": "59e58509dc8e59e9302e94b17b7f8e22568df7c7",
      "parents": [
        "5ba7cc4801ae0fe74b6e0160f008521ae71d9f5d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:21 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Sat Dec 03 15:20:21 2005 -0500"
      },
      "message": "NFSv4: Fix an Oops in the synchronous write path\n\n - Missing initialisation of attribute bitmask in _nfs4_proc_write()\n - On success, _nfs4_proc_write() must return number of bytes written.\n - Missing post_op_update_inode() in _nfs4_proc_write()\n - Missing initialisation of attribute bitmask in _nfs4_proc_commit()\n - Missing post_op_update_inode() in _nfs4_proc_commit()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ff6040667ad5a21fa1090e02941ecefb94ebe32c",
      "tree": "63339e45fefb05ecf23071fb98c5b383972714d4",
      "parents": [
        "36f20c6df75d599393d79c7feb6283b20913e3d5"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:10:01 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 25 17:11:29 2005 -0500"
      },
      "message": "NFSv4: Fix typo in lock caching\n\n When caching locks due to holding a file delegation, we must always\n check against local locks before sending anything to the server.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6bfc93ef98f00b38f1913a7fdeae46ae8dbd7c52",
      "tree": "2eb5f2fa26376b3d6ae5eebd65e93d4eec9555bd",
      "parents": [
        "888e694c167975709f17526dbbed2d98f84e8f85"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:39:36 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:39:36 2005 -0500"
      },
      "message": "NFSv4: Teach NFSv4 to cache locks when we hold a delegation\n\n Now that we have a method of dealing with delegation recalls, actually\n enable the caching of posix and BSD locks.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "888e694c167975709f17526dbbed2d98f84e8f85",
      "tree": "11dbbdf2591946f490d4cb28194a80fd3cec4094",
      "parents": [
        "43b2a33aa868054bd477ab2c1cd20f1ba1af2c3e"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:38:11 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:38:11 2005 -0500"
      },
      "message": "NFSv4: Recover locks too when returning a delegation\n\n Delegations allow us to cache posix and BSD locks, however when the\n delegation is recalled, we need to \"flush the cache\" and send\n the cached LOCK requests to the server.\n\n This patch sets up the mechanism for doing so.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "2c56617d76fa7b2a709d58abd7ed68889cc88b90",
      "tree": "fb4e01de2057659b4ec80a812fa94d7b97359402",
      "parents": [
        "d530838bfa507d67b40d13b00d9cbd7a46a47e78"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:50 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:33:50 2005 -0500"
      },
      "message": "NFSv4: Fix the handling of the error NFS4ERR_OLD_STATEID\n\n Ensure that we retry the failed operation...\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\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": "4cecb76ff86db46d2823550256c828b6597f418e",
      "tree": "db80c6f4423d2559661234e8d1cd34b2c15f7750",
      "parents": [
        "462aae65f6ea41de05ebc2a54a9e6b95563591f3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:32:58 2005 -0500"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Nov 04 15:32:58 2005 -0500"
      },
      "message": "NFSv4: Fix a race between open() and close()\n\n We must not remove the nfs4_state structure from the inode open lists\n before we are in sequence lock.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "4f9838c7ecd14f31f701f64fa65ded132fc0db8a",
      "tree": "f3fee5b744efb072f44591208541554976bf41d7",
      "parents": [
        "16e429596dec4d28e16812b3a9be27f18412c567"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:44 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:44 2005 -0400"
      },
      "message": "NFSv4: Add post-op attributes to NFSv4 write and commit callbacks.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "16e429596dec4d28e16812b3a9be27f18412c567",
      "tree": "b11c0f3829ae1225794a3d1fca68a1878a87a46d",
      "parents": [
        "6caf2c8276d371679a798058e8fdf49f5ff831a3"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:44 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:44 2005 -0400"
      },
      "message": "NFSv4: Add post-op attributes to nfs4_proc_remove()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "6caf2c8276d371679a798058e8fdf49f5ff831a3",
      "tree": "ff53620d5879644df543dcce2ce86db863dad21c",
      "parents": [
        "91ba2eeec5e8e86e054937eb3bf5aec5b22b1830"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:43 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:43 2005 -0400"
      },
      "message": "NFSv4: Add post-op attributes to nfs4_proc_rename()\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "91ba2eeec5e8e86e054937eb3bf5aec5b22b1830",
      "tree": "9157b8bfe90fed0b472da3ec71dadfb0c587e566",
      "parents": [
        "cf809556149f076b7a020c10e066b2b96e79b6a1"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:42 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:42 2005 -0400"
      },
      "message": "NFSv4: Add post-op attributes to nfs4_proc_link()\n\n Optimise attribute revalidation when hardlinking. Add post-op attributes\n for the directory and the original inode.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "516a6af641bb50c608329a5bd751acd0d65cc4ab",
      "tree": "93b240cb19460073cac3363517fcc0e253fb48d9",
      "parents": [
        "3338c143b4fde2d256016b63043ec8e2c93eba19"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:41 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:41 2005 -0400"
      },
      "message": "NFS: Add optional post-op getattr instruction to the NFSv4 file close.\n\n \"Optional\" means that the close call will not fail if the getattr\n at the end of the compound fails.\n If it does succeed, try to refresh inode attributes.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "56ae19f38f10aad4f27f7e12138a29b295dff07a",
      "tree": "79ada0dacbcf6470b4469c537d3bae02bb81069d",
      "parents": [
        "0c70b50150cfb0b43ff500a8a394a52b4d5f1350"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:40 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 27 22:12:40 2005 -0400"
      },
      "message": "NFSv4: Add directory post-op attributes to the CREATE operations.\n\n Since the directory attributes change every time we CREATE a file,\n we might as well pick up the new directory attributes in the same\n compound.\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": "0e574af1be5f569a5d7f2800333b0bfb358a5e34",
      "tree": "bb5b62dece21b8906222dfee022020ed6f81e34c",
      "parents": [
        "4c2cb58c552a34744979a99ccf01762d5eb7e288"
      ],
      "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: Cleanup initialisation of struct nfs_fattr\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "ec073428281b401f1142cb84b277a5b00c7994c9",
      "tree": "c96e6d10af61dc3fd678c46dda505791812ca985",
      "parents": [
        "4e51336a00bdcb42960acca52c23e90e9f4e6959"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 14:22:47 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Thu Oct 20 14:22:47 2005 -0700"
      },
      "message": "NFSv4: Fix up locking for nfs4_state_owner\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "1d95db8e1688ed54e143a597c5570631a42fa594",
      "tree": "b0b0a667cf9ecccabc26cd7afceed05815066aa6",
      "parents": [
        "8c233cf9c2ad6f49df753bdce84fddbf00bf6a75"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@fieldses.org",
        "time": "Thu Oct 13 16:54:32 2005 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 23:19:41 2005 -0700"
      },
      "message": "NFSv4: Fix acl buffer size\n\n resp_len is passed in as buffer size to decode routine; make sure it\u0027s\n set right in case where userspace provides less than a page\u0027s worth of\n buffer.\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": "550f57470c6506f5ef3c708335dea6bd48bf3dc4",
      "tree": "be34cc170cce1e103baec1976f7903528eb4ff4d",
      "parents": [
        "b8e5c4c2978fa666287525a9de2fa648a7581262"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:21 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:21 2005 -0700"
      },
      "message": "NFSv4: Ensure that we recover from the OPEN + OPEN_CONFIRM BAD_STATEID race\n\n If the server is in the unconfirmed OPEN state for a given open owner\n and receives a second OPEN for the same open owner, it will cancel the\n state of the first request and set up an OPEN_CONFIRM for the second.\n\n This can cause a race that is discussed in rfc3530 on page 181.\n\n The following patch allows the client to recover by retrying the\n original open request.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b8e5c4c2978fa666287525a9de2fa648a7581262",
      "tree": "b90d9aca86dcb187d985be1eb39e5f691dfcf187",
      "parents": [
        "642ac54923e0291ae2c8e42edde18d8c9c0a3c84"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:20 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:20 2005 -0700"
      },
      "message": "NFSv4: If a delegated open fails, ensure that we return the delegation\n\n Unless of course the open fails due to permission issues.\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": "6f926b5ba75c568296ec227e7d782db4ddbdca5c",
      "tree": "6c9aad3139ae4e54210ab5ff37446c357c54b521",
      "parents": [
        "02a913a73b52071e93f4b76db3e86138d19efffd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:18 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:18 2005 -0700"
      },
      "message": "[NFS]: Check that the server returns a valid regular file to our OPEN request\n\n Since it appears that some servers don\u0027t...\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "02a913a73b52071e93f4b76db3e86138d19efffd",
      "tree": "1dc1abbd2d8f57a6fd593dd252d6d7ecc7c811c5",
      "parents": [
        "834f2a4a1554dc5b2598038b3fe8703defcbe467"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:17 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:17 2005 -0700"
      },
      "message": "NFSv4: Eliminate nfsv4 open race...\n\n Make NFSv4 return the fully initialized file pointer with the\n stateid that it created in the lookup w/intent.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "06735b3454824bd561decbde46111f144e905923",
      "tree": "2c9e9f18ba8d3700a181b44d2b1f0ce6a62612f8",
      "parents": [
        "faf5f49c2d9c0af2847837c232a432cc146e203b"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:15 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:15 2005 -0700"
      },
      "message": "NFSv4: Fix up handling of open_to_lock sequence ids\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "faf5f49c2d9c0af2847837c232a432cc146e203b",
      "tree": "f0c097ae68ca3ec3cd5ee0a904916493b00b9c1b",
      "parents": [
        "0a8838f972883112f0a7b259141b24db17583c2d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:15 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:15 2005 -0700"
      },
      "message": "NFSv4: Make NFS clean up byte range locks asynchronously\n\n Currently we fail to do so if the process was signalled.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "0a8838f972883112f0a7b259141b24db17583c2d",
      "tree": "80b047e5223f8cbaaa68b03ba1b4914b437e3f59",
      "parents": [
        "83c9d41e456033000ccfadf535f3098d8739488d"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:14 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:14 2005 -0700"
      },
      "message": "NFSv4: Add missing handling of OPEN_CONFIRM requests on CLAIM_DELEGATE_CUR.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "83c9d41e456033000ccfadf535f3098d8739488d",
      "tree": "09f5573ba348225bb7eed14c20b3305f49449e06",
      "parents": [
        "e6dfa553cffcb9740f932311dff42f81d6ac63bb"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "message": "NFSv4: Remove nfs4_client-\u003ecl_sem from close() path\n\n We no longer need to worry about collisions between close() and the state\n recovery code, since the new close will automatically recheck the\n file state once it is done waiting on its sequence slot.\n\n Ditto for the nfs4_proc_locku() procedure.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "e6dfa553cffcb9740f932311dff42f81d6ac63bb",
      "tree": "d5519b749b6a7fb6e25b0459385011cd69a6caaf",
      "parents": [
        "9512135df14f8293b9bc5e8fb22d4279dee5ff66"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:13 2005 -0700"
      },
      "message": "NFSv4: Remove obsolete state_owner and lock_owner semaphores\n\n OPEN, CLOSE, etc no longer need these semaphores to ensure ordering of\n requests.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "9512135df14f8293b9bc5e8fb22d4279dee5ff66",
      "tree": "83fb778ed53ba10c46734968f538aa0a57d376a1",
      "parents": [
        "cee54fc944422c44e476736c045a9e8053cb0644"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "message": "NFSv4: Fix a potential CLOSE race\n\n Once the state_owner and lock_owner semaphores get removed, it will be\n possible for other OPEN requests to reopen the same file if they have\n lower sequence ids than our CLOSE call.\n This patch ensures that we recheck the file state once\n nfs_wait_on_sequence() has completed waiting.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "cee54fc944422c44e476736c045a9e8053cb0644",
      "tree": "95f4728b3ffa8a2456727b10cd3a68f2a3065415",
      "parents": [
        "5e5ce5be6f0161d2a069a4f8a1154fe639c5c02f"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Tue Oct 18 14:20:12 2005 -0700"
      },
      "message": "NFSv4: Add functions to order RPC calls\n\n NFSv4 file state-changing functions such as OPEN, CLOSE, LOCK,... are all\n labelled with \"sequence identifiers\" in order to prevent the server from\n reordering RPC requests, as this could cause its file state to\n become out of sync with the client.\n\n Currently the NFS client code enforces this ordering locally using\n semaphores to restrict access to structures until the RPC call is done.\n This, of course, only works with synchronous RPC calls, since the\n user process must first grab the semaphore.\n By dropping semaphores, and instead teaching the RPC engine to hold\n the RPC calls until they are ready to be sent, we can extend this\n process to work nicely with asynchronous RPC calls too.\n\n This patch adds a new list called \"rpc_sequence\" that defines the order\n of the RPC calls to be sent. We add one such list for each state_owner.\n When an RPC call is ready to be sent, it checks if it is top of the\n rpc_sequence list. If so, it proceeds. If not, it goes back to sleep,\n and loops until it hits top of the list.\n Once the RPC call has completed, it can then bump the sequence id counter,\n and remove itself from the rpc_sequence list, and then wake up the next\n sleeper.\n\n Note that the state_owner sequence ids and lock_owner sequence ids are\n all indexed to the same rpc_sequence list, so OPEN, LOCK,... requests\n are all ordered w.r.t. each other.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "041e0e3b1970c508dc9a95b7dd9dc86271a7d7ac",
      "tree": "41ff880a87412cf55eb12425e916fda57955ee5c",
      "parents": [
        "373016e9e1353f2af871993d27d00768f08cc883"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@us.ibm.com",
        "time": "Sat Sep 10 00:27:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Sep 10 10:06:36 2005 -0700"
      },
      "message": "[PATCH] fs: fix-up schedule_timeout() usage\n\nUse schedule_timeout_{,un}interruptible() instead of\nset_current_state()/schedule_timeout() to reduce kernel size.  Also use helper\nfunctions to convert between human time units and jiffies rather than constant\nHZ division to avoid rounding errors.\n\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\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": "eadf4598e7ec37a234e70e965bd335860e58bda4",
      "tree": "d82bd76e553a4165a972b1ad93d1e1d8ddb017bb",
      "parents": [
        "6ebf3656fd18430d90fbb3199b31d08178c37134"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:39 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:44 2005 -0400"
      },
      "message": "[PATCH] NFS: Add debugging code to NFSv4 readdir\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "8d0a8a9d0ec790086c64d210af413ac351d89e35",
      "tree": "003a1481e4a8d8487956a6bf04db80dd93264b8b",
      "parents": [
        "ecdbf769b2cb8903e07cd482334c714d89fd1146"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 17:16:32 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:42 2005 -0400"
      },
      "message": "[PATCH] NFSv4: Clean up nfs4 lock state accounting\n\n Ensure that lock owner structures are not released prematurely.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "08e9eac42edab63bce14b5c8419771f3c92aa3f4",
      "tree": "5dd77a7fa392710dab47d30ae42bfb88b932b097",
      "parents": [
        "202b50dc127cf4714ffdcc6a64f1648373f9414f"
      ],
      "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:35 2005 -0400"
      },
      "message": "[PATCH] NFSv4: Fix up races in nfs4_proc_setattr()\n\n If we do not hold a valid stateid that is open for writes, there is little\n point in doing an extra open of the file, as the RFC does not appear to\n mandate this...\n\n Make setattr use the correct stateid if we\u0027re holding mandatory byte\n range locks.\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "202b50dc127cf4714ffdcc6a64f1648373f9414f",
      "tree": "672286049ecbf9af1b189c1ac12a5850fd3879e1",
      "parents": [
        "f0dd2136da6d2070e12bfa6d199b136318e666c7"
      ],
      "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] NFSv4: Ensure that propagate NFSv4 state errors to the reclaim code\n\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "3e9d41543b16e6117267edc0ca058c40f888d81a",
      "tree": "90b26a247de5776ad46a6e6a8861a449d7c6d840",
      "parents": [
        "b7ef19560f496fd3942e41e728950e5b5c9a461b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Jun 22 17:16:28 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:28 2005 -0400"
      },
      "message": "[PATCH] NFSv4: empty array fix\n\n Older gcc\u0027s don\u0027t like this.\n\n fs/nfs/nfs4proc.c:2194: field `data\u0027 has incomplete type\n\n Signed-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\n Signed-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b7ef19560f496fd3942e41e728950e5b5c9a461b",
      "tree": "d644bb8aaff3e9611dd0fbad1db4315f78f36a71",
      "parents": [
        "213484254c65e3c39c59df454132748b1367f816"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Wed Jun 22 17:16:28 2005 +0000"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Jun 22 16:07:27 2005 -0400"
      },
      "message": "[PATCH] NFSv4: fs/nfs/nfs4proc.c: small simplification\n\n The Coverity checker noticed that such a simplification was possible.\n\n Signed-off-by: Adrian Bunk \u003cbunk@stusta.de\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": "4b580ee3dc00f9828a9a7aad2724f448fdc94075",
      "tree": "a39ca6a5be4766420c6cc6ea8141fb421280bcb3",
      "parents": [
        "23ec6965c20db96bc8ea7af0ec178f074dd31c40"
      ],
      "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:14 2005 -0400"
      },
      "message": "[PATCH] NFSv4: ACL support for the NFSv4 client: write\n\n Client-side write support for NFSv4 ACLs.\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": "aa1870af92d8f6d6db0883696516a83ff2b695a6",
      "tree": "2c50546e11c898fe1f1ec736a0764d540558cb5f",
      "parents": [
        "029d105e66e5a90850d5a09dad76815d0bcfcaa3"
      ],
      "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:13 2005 -0400"
      },
      "message": "[PATCH] NFSv4: ACL support for the NFSv4 client: read\n\n Client-side support for NFSv4 ACLs.  Exports the raw xdr code via the\n system.nfs4_acl extended attribute.  It is up to userspace to decode the acl\n (and to provide correctly xdr\u0027d acls on setxattr), and to convert to/from\n POSIX ACLs if desired.\n\n This patch provides only the read support.\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": "6b3b5496d7b261d6c9202008dc528e52dbd11e57",
      "tree": "bcd625880fc7799ddd85b132e3cdfd501f5a82b9",
      "parents": [
        "ada70d9425bcc5e376fef8591e4e76e204c0834c"
      ],
      "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:10 2005 -0400"
      },
      "message": "[PATCH] NFSv4: Add {get,set,list}xattr methods for nfs4\n\n Add {get,set,list}xattr methods for nfs4.  The new methods are no-ops, to be\n used by subsequent ACL patch.\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": "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": "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": "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"
    }
  ]
}
